当前位置: 首页 > wzjs >正文

怎么做非法网站windows优化大师官方网站

怎么做非法网站,windows优化大师官方网站,鸿蒙os用什么语言开发app,制作网站建设拓扑图软件1.什么是进程同步,为什么要引入进程同步? 进程同步是指多个进程在执行次序上进行协调,使它们按一定的规则共享资源和相互合作。引入进程同步是为了避免并发进程因资源竞争而产生数据不一致、混乱等问题,确保系统的稳定性和正确性。 2.同步…

1.什么是进程同步,为什么要引入进程同步?

  • 进程同步是指多个进程在执行次序上进行协调,使它们按一定的规则共享资源和相互合作。引入进程同步是为了避免并发进程因资源竞争而产生数据不一致、混乱等问题,确保系统的稳定性和正确性。

2.同步机制应该遵循的原则是什么?为什么要遵循这些原则(可以通过举例进行解释)

  • 同步机制应遵循空闲让进、忙则等待、有限等待和让权等待原则。空闲让进可提高资源利用率,如空闲文件允许多线程写入;忙则等待防数据混乱,像多线程改数据库;有限等待避“饥饿”,保证进程执行;让权等待免忙等,使系统高效运行。

3.什么是信号量,为什么引入信号量机制?

  • 信号量是一个整型变量,用于进程同步。它有两个原子操作:P操作(等待)和V操作(释放)。引入信号量机制是为了有效解决进程同步和互斥问题,通过对信号量的操作来控制进程对临界资源的访问,避免因竞争导致的数据不一致等问题。

4.给出记录型信号量wait()和signal()操作的实现代码

import java.util.LinkedList;
import java.util.Queue;class RecordSemaphore {//信号量private int value;//阻塞队列private Queue<Thread> queue;public RecordSemaphore(int value) {this.value = value;this.queue = new LinkedList<>();}public synchronized void waitOp() {value--;if (value < 0) {try {queue.add(Thread.currentThread());// 线程在 RecordSemaphore 对象的监视器上等待this.wait();} catch (InterruptedException e) {Thread.currentThread().interrupt();}}}public synchronized void signalOp() {value++;if (value <= 0) {queue.poll();// 在 RecordSemaphore 对象的监视器上唤醒等待的线程this.notify();}}public static void main(String[] args) {RecordSemaphore semaphore = new RecordSemaphore(1);// 创建线程 1Thread thread1 = new Thread(() -> {System.out.println(Thread.currentThread().getName() + " 尝试获取信号量");semaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 已获取信号量,正在执行操作...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + " 操作完成,释放信号量");semaphore.signalOp();}, "Thread-1");// 创建线程 2Thread thread2 = new Thread(() -> {System.out.println(Thread.currentThread().getName() + " 尝试获取信号量");semaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 已获取信号量,正在执行操作...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + " 操作完成,释放信号量");semaphore.signalOp();}, "Thread-2");// 创建线程 3Thread thread3 = new Thread(() -> {System.out.println(Thread.currentThread().getName() + " 尝试获取信号量");semaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 已获取信号量,正在执行操作...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + " 操作完成,释放信号量");semaphore.signalOp();}, "Thread-3");// 启动线程thread1.start();thread2.start();thread3.start();// 等待线程执行完成try {thread1.join();thread2.join();thread3.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("所有线程执行完毕");}
}

运行结果1:

Thread-1 尝试获取信号量
Thread-1 已获取信号量,正在执行操作...
Thread-3 尝试获取信号量
Thread-2 尝试获取信号量
Thread-1 操作完成,释放信号量
Thread-3 已获取信号量,正在执行操作...
Thread-3 操作完成,释放信号量
Thread-2 已获取信号量,正在执行操作...
Thread-2 操作完成,释放信号量
所有线程执行完毕

运行结果2:

Thread-1 尝试获取信号量
Thread-1 已获取信号量,正在执行操作...
Thread-2 尝试获取信号量
Thread-3 尝试获取信号量
Thread-1 操作完成,释放信号量
Thread-2 已获取信号量,正在执行操作...
Thread-2 操作完成,释放信号量
Thread-3 已获取信号量,正在执行操作...
Thread-3 操作完成,释放信号量

运行结果3:

Thread-2 尝试获取信号量
Thread-2 已获取信号量,正在执行操作...
Thread-3 尝试获取信号量
Thread-1 尝试获取信号量
Thread-2 操作完成,释放信号量
Thread-3 已获取信号量,正在执行操作...
Thread-3 操作完成,释放信号量
Thread-1 已获取信号量,正在执行操作...
Thread-1 操作完成,释放信号量
所有线程执行完毕

5.用wait(),signal()操作尝试实现司机和售票员进程的同步(利用信号量实现前驱关系)

import java.util.LinkedList;
import java.util.Queue;class RecordSemaphore {// 信号量private int value;// 阻塞队列private Queue<Thread> queue;public RecordSemaphore(int value) {this.value = value;this.queue = new LinkedList<>();}public synchronized void waitOp() {value--;if (value < 0) {try {queue.add(Thread.currentThread());// 线程在 RecordSemaphore 对象的监视器上等待this.wait();} catch (InterruptedException e) {Thread.currentThread().interrupt();}}}public synchronized void signalOp() {value++;if (value <= 0) {queue.poll();// 在 RecordSemaphore 对象的监视器上唤醒等待的线程this.notify();}}public static void main(String[] args) {// 用于控制售票员线程开始的信号量,初始值为 1 表示可以开始RecordSemaphore conductorSemaphore = new RecordSemaphore(1);// 用于控制司机线程开始的信号量,初始值为 0 表示需要等待RecordSemaphore driverSemaphore = new RecordSemaphore(0);// 创建售票员线程Thread conductor = new Thread(() -> {System.out.println(Thread.currentThread().getName() + " 尝试获取信号量");conductorSemaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 已获取信号量,正在执行操作...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + " 操作完成,释放信号量");conductorSemaphore.signalOp();// 售票员操作完成后,释放司机线程的信号量driverSemaphore.signalOp();}, "售票员");// 创建司机线程Thread driver = new Thread(() -> {System.out.println(Thread.currentThread().getName() + " 等待售票员完成操作...");// 等待售票员线程释放信号量driverSemaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 尝试获取信号量");conductorSemaphore.waitOp();System.out.println(Thread.currentThread().getName() + " 已获取信号量,正在执行操作...");try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + " 操作完成,释放信号量");conductorSemaphore.signalOp();}, "司机");// 启动线程conductor.start();driver.start();// 等待线程执行完成try {conductor.join();driver.join();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("所有线程执行完毕");}
}    

测试结果如下:

售票员 尝试获取信号量
司机 等待售票员完成操作...
售票员 已获取信号量,正在执行操作...
售票员 操作完成,释放信号量
司机 尝试获取信号量
司机 已获取信号量,正在执行操作...
司机 操作完成,释放信号量
所有线程执行完毕
http://www.dtcms.com/wzjs/507278.html

相关文章:

  • 保定网络营销网站淘宝直通车推广怎么收费
  • 想制作一个网站要多少钱哪个网站做推广效果好
  • 淮南公司网站建设多少费用网店推广方案策划书
  • 桂林北站附近酒店哪些行业适合做网络推广
  • 怎样给网站做seo优化济南百度快照推广公司
  • 电子商务网站建设与管理案例南京seo网络优化公司
  • idea做一个自己的网站教程港港网app下载最新版
  • 增城建设局网站怎么建网站免费的
  • 树莓派做的网站网络营销经典成功案例
  • 山西网站制作方案下载一个百度时事新闻
  • 徐州市建设局网站首页58同城推广效果怎么样
  • 甘肃建设厅网站二级建造师报名时间宁波关键词网站排名
  • 给公司建立一个网站吗管理培训班
  • 网站开发时浮动框的代码网络宣传方式
  • 郴州竞价网站建设方案淘宝指数查询入口
  • 怎么用腾讯云主机建设网站个人网页免费域名注册入口
  • 绵阳住房和城乡建设部网站学开网店哪个培训机构好正规
  • 自己做网站翻译服务器 - 添加网站微信群推广网站
  • 无货源网店靠谱吗关键词优化seo公司
  • 杭州网站关键词优化疫情最新数据消息
  • 开发网站建设同城推广引流平台
  • 上海外贸网站搭建建设企业营销型网站
  • 个人做网站怎么备案热狗seo外包
  • app免费下载网站地址进入快速排名提升
  • 网站用哪个做百度热搜高考大数据
  • 虚拟主机可以做几个网站百度系app有哪些
  • 兰州新站seoseo还能赚钱吗
  • 新疆生产建设兵团奇台总场网站网络营销工具包括
  • 美工是做什么的难学吗seo站外优化平台
  • seo外链收录西安网站建设方案优化