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

淮安集团网站建设网站建设管理汇报

淮安集团网站建设,网站建设管理汇报,宁波建网站模板,做试卷的网站现有函数 printNumber 可以用一个整数参数调用#xff0c;并输出该整数到控制台。 例如#xff0c;调用 printNumber(7) 将会输出 7 到控制台。 给你类 ZeroEvenOdd 的一个实例#xff0c;该类中有三个函数#xff1a;zero、even 和 odd 。ZeroEvenOdd 的相同实例将会传递…现有函数 printNumber 可以用一个整数参数调用并输出该整数到控制台。 例如调用 printNumber(7) 将会输出 7 到控制台。 给你类 ZeroEvenOdd 的一个实例该类中有三个函数zero、even 和 odd 。ZeroEvenOdd 的相同实例将会传递给三个不同线程 线程 A调用 zero() 只输出 0线程 B调用 even() 只输出偶数线程 C调用 odd() 只输出奇数 修改给出的类以输出序列 010203040506... 其中序列的长度必须为 2n 。 实现 ZeroEvenOdd 类 ZeroEvenOdd(int n) 用数字 n 初始化对象表示需要输出的数。void zero(printNumber) 调用 printNumber 以输出一个 0 。void even(printNumber) 调用printNumber 以输出偶数。void odd(printNumber) 调用 printNumber 以输出奇数。 示例 1 输入n 2 输出0102 解释三条线程异步执行其中一个调用 zero()另一个线程调用 even()最后一个线程调用odd()。正确的输出为 0102。示例 2 输入n 5 输出0102030405 1. Semaphore class ZeroEvenOdd {private int n;private Semaphore zeroSema new Semaphore(1);private Semaphore oddSema new Semaphore(0);//奇数private Semaphore evenSema new Semaphore(0);//偶数public ZeroEvenOdd(int n) {this.n n;}public void zero(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {zeroSema.acquire();printNumber.accept(0);if (i % 2! 0) {//奇数oddSema.release();} else {evenSema.release();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 0) {//偶数 打印偶数 并释放zero的线程evenSema.acquire();printNumber.accept(i);zeroSema.release();}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 ! 0) {//奇数打印奇数并释放zero的线程oddSema.acquire();printNumber.accept(i);zeroSema.release();}}} }2. synchronized class ZeroEvenOdd {private int n;private final Object obnew Object();private volatile int flag0;public ZeroEvenOdd(int n) {this.n n;}public void zero(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {synchronized (ob){while (flag!0){ob.wait();}printNumber.accept(0);if(i%20)flag2;elseflag1;ob.notifyAll();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 0) {//偶数 打印偶数 并释放zero的线程synchronized (ob){while (flag!2){ob.wait();}printNumber.accept(i);flag0;ob.notifyAll();}}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2! 0) {//偶数 打印偶数 并释放zero的线程synchronized (ob){while (flag!1){ob.wait();}printNumber.accept(i);flag0;ob.notifyAll();}}}} } 3. CountDownLatch class ZeroEvenOdd {private int n;private CountDownLatch countDownLatch_zeronew CountDownLatch(0);private CountDownLatch countDownLatch_evennew CountDownLatch(1);private CountDownLatch countDownLatch_oddnew CountDownLatch(1);public ZeroEvenOdd(int n) {this.n n;}public void zero(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {countDownLatch_zero.await();printNumber.accept(0);countDownLatch_zeronew CountDownLatch(1);if (i % 2! 0) {//奇数countDownLatch_odd.countDown();} else {countDownLatch_even.countDown();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 0) {//偶数 打印偶数 并释放zero的线程countDownLatch_even.await();printNumber.accept(i);countDownLatch_evennew CountDownLatch(1);countDownLatch_zero.countDown();}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 ! 0) {//奇数打印奇数并释放zero的线程countDownLatch_odd.await();printNumber.accept(i);countDownLatch_oddnew CountDownLatch(1);countDownLatch_zero.countDown();}}} }4. Lock class ZeroEvenOdd {private int n;private volatile int flag0;Lock locknew ReentrantLock();Condition condition_zero lock.newCondition();Condition conditon_even lock.newCondition();Condition condition_odd lock.newCondition();public ZeroEvenOdd(int n) {this.n n;}public void zero(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {lock.lock();try{while (flag!0){condition_zero.await();}printNumber.accept(0);if(i%20) {flag 2;conditon_even.signal();}else {flag 1;condition_odd.signal();}}finally {lock.unlock();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2 0) {//偶数 打印偶数 并释放zero的线程lock.lock();try {while (flag ! 2) {conditon_even.await();}printNumber.accept(i);flag 0;condition_zero.signal();}finally {lock.unlock();}}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i 1; i n; i) {if (i % 2! 0) {//偶数 打印偶数 并释放zero的线程lock.lock();try {while (flag ! 1) {condition_odd.await();}printNumber.accept(i);flag 0;condition_zero.signal();}finally {lock.unlock();}}}} }
http://www.hkea.cn/news/14366057/

相关文章:

  • 做暧暧小视频网站郑州网站建设推荐美软科技
  • 网站排名优化外包公司网站群管理建设
  • 东昌网站建设费用营销策划方案总结
  • 贵州住房与城乡建设部网站菏泽公司网站建设
  • 杭州品牌网站设计可以做微信推送的网站
  • 遂昌网站建设百度seo排名优化软件化
  • 建网站如何备案贵阳网站建设报价
  • 虾米音乐歌曲链接做qq音乐网站php能自己做网站吗
  • 网站被做暗链报告网站建站建设怎么做
  • 做58同城网站需要多少钱重庆专业网站推广报价
  • 网站最近收录百度官网首页登陆
  • 上海有做网站的公司么网站301的作用
  • 怎么让百度收录你的网站网络营销的专业网站
  • 网站建设和前端开发的区别慈溪市网站开发
  • 网站建设中的html页面黔农生态现货交易平台
  • 广告联盟哪个好青岛网站优化价格
  • 网站怎么能快速备案.name后缀的网站
  • 万金娱乐网站开发平面设计一般学多久
  • 做电影网站有风险吗如何买网站
  • 建立一个企业网站需要多少钱上海php做网站
  • 域名解析后网站怎么建设第三方公司做网站价格
  • 建设l旅游网站目的及功能定位网站建设差打不开
  • 碧辉腾乐 网站建设wordpress小工具安装
  • 温州网站设计力推亿企帮学校网站建设方案模板
  • 常州建设网站平台网站开发什么时候用缓存
  • 广东建设厅网站首页wordpress 发不出邮件
  • 企业网站建设兴田德润很赞邯郸网站建设网络公司
  • 网站建设验收单意见怎么写搜索引擎优化关键字
  • 新余网站建设哈尔滨最新政策
  • 滨州建设局网站站群建站