中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

智能建站系統(tǒng)怎么更換網(wǎng)站模板東莞互聯(lián)網(wǎng)推廣

智能建站系統(tǒng)怎么更換網(wǎng)站模板,東莞互聯(lián)網(wǎng)推廣,犀牛云做網(wǎng)站騙人,關(guān)鍵詞排名優(yōu)化佛山售后現(xiàn)有函數(shù) printNumber 可以用一個(gè)整數(shù)參數(shù)調(diào)用,并輸出該整數(shù)到控制臺(tái)。 例如,調(diào)用 printNumber(7) 將會(huì)輸出 7 到控制臺(tái)。 給你類 ZeroEvenOdd 的一個(gè)實(shí)例,該類中有三個(gè)函數(shù):zero、even 和 odd 。ZeroEvenOdd 的相同實(shí)例將會(huì)傳遞…

現(xiàn)有函數(shù)?printNumber?可以用一個(gè)整數(shù)參數(shù)調(diào)用,并輸出該整數(shù)到控制臺(tái)。

  • 例如,調(diào)用?printNumber(7)?將會(huì)輸出?7?到控制臺(tái)。

給你類?ZeroEvenOdd?的一個(gè)實(shí)例,該類中有三個(gè)函數(shù):zero、even?和?odd?。ZeroEvenOdd?的相同實(shí)例將會(huì)傳遞給三個(gè)不同線程:

  • 線程 A:調(diào)用?zero()?,只輸出?0
  • 線程 B:調(diào)用?even()?,只輸出偶數(shù)
  • 線程 C:調(diào)用?odd()?,只輸出奇數(shù)

修改給出的類,以輸出序列?"010203040506..."?,其中序列的長(zhǎng)度必須為?2n?。

實(shí)現(xiàn)?ZeroEvenOdd?類:

  • ZeroEvenOdd(int n)?用數(shù)字?n?初始化對(duì)象,表示需要輸出的數(shù)。
  • void zero(printNumber)?調(diào)用?printNumber?以輸出一個(gè) 0 。
  • void even(printNumber)?調(diào)用printNumber?以輸出偶數(shù)。
  • void odd(printNumber)?調(diào)用?printNumber?以輸出奇數(shù)。

示例 1:

輸入:n = 2
輸出:"0102"
解釋:三條線程異步執(zhí)行,其中一個(gè)調(diào)用 zero(),另一個(gè)線程調(diào)用 even(),最后一個(gè)線程調(diào)用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);//奇數(shù)private Semaphore evenSema = new Semaphore(0);//偶數(shù)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) {//奇數(shù)oddSema.release();} else {evenSema.release();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i = 1; i <= n; i++) {if (i % 2== 0) {//偶數(shù) 打印偶數(shù) 并釋放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) {//奇數(shù),打印奇數(shù),并釋放zero的線程oddSema.acquire();printNumber.accept(i);zeroSema.release();}}}
}

2.?synchronized

class ZeroEvenOdd {private int n;private final Object ob=new Object();private volatile int flag=0;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%2==0)flag=2;elseflag=1;ob.notifyAll();}}}public void even(IntConsumer printNumber) throws InterruptedException {for (int i = 1; i <= n; i++) {if (i % 2== 0) {//偶數(shù) 打印偶數(shù) 并釋放zero的線程synchronized (ob){while (flag!=2){ob.wait();}printNumber.accept(i);flag=0;ob.notifyAll();}}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i = 1; i <= n; i++) {if (i % 2!= 0) {//偶數(shù) 打印偶數(shù) 并釋放zero的線程synchronized (ob){while (flag!=1){ob.wait();}printNumber.accept(i);flag=0;ob.notifyAll();}}}}
}

3. CountDownLatch

class ZeroEvenOdd {private int n;private CountDownLatch countDownLatch_zero=new CountDownLatch(0);private CountDownLatch countDownLatch_even=new CountDownLatch(1);private CountDownLatch countDownLatch_odd=new 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_zero=new CountDownLatch(1);if (i % 2!= 0) {//奇數(shù)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) {//偶數(shù) 打印偶數(shù) 并釋放zero的線程countDownLatch_even.await();printNumber.accept(i);countDownLatch_even=new CountDownLatch(1);countDownLatch_zero.countDown();}}}public void odd(IntConsumer printNumber) throws InterruptedException {for (int i = 1; i <= n; i++) {if (i % 2 != 0) {//奇數(shù),打印奇數(shù),并釋放zero的線程countDownLatch_odd.await();printNumber.accept(i);countDownLatch_odd=new CountDownLatch(1);countDownLatch_zero.countDown();}}}
}

4. Lock

class ZeroEvenOdd {private int n;private volatile int flag=0;Lock lock=new 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%2==0) {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) {//偶數(shù) 打印偶數(shù) 并釋放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) {//偶數(shù) 打印偶數(shù) 并釋放zero的線程lock.lock();try {while (flag != 1) {condition_odd.await();}printNumber.accept(i);flag = 0;condition_zero.signal();}finally {lock.unlock();}}}}
}

http://www.risenshineclean.com/news/53073.html

相關(guān)文章:

  • 手機(jī)版網(wǎng)站開發(fā)框架關(guān)鍵詞怎么找出來(lái)
  • 天津單位網(wǎng)站建設(shè)獲取排名
  • wordpress 性能分析凱里seo排名優(yōu)化
  • 新鄉(xiāng)河南網(wǎng)站建設(shè)頂尖文案
  • 山東mip網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷屬于哪個(gè)專業(yè)
  • 網(wǎng)站免費(fèi)建設(shè)seo外鏈優(yōu)化培訓(xùn)
  • 廊坊網(wǎng)站建設(shè)公司哪家好建站公司哪家好
  • 做去態(tài)網(wǎng)站要學(xué)什么語(yǔ)言故事型軟文廣告
  • 肇慶網(wǎng)站建設(shè)公司哪個(gè)好谷歌推廣怎么做
  • 負(fù)面信息網(wǎng)站全國(guó)疫情最新情報(bào)
  • 新媒體運(yùn)營(yíng)師考試報(bào)名官網(wǎng)優(yōu)化大師的功能有哪些
  • 在阿里云域名可以做網(wǎng)站嗎百度海南分公司
  • 網(wǎng)站建設(shè)計(jì)劃 文庫(kù)原畫培訓(xùn)班一般學(xué)費(fèi)多少
  • 企業(yè)網(wǎng)站建設(shè)開發(fā)注意事項(xiàng)深圳優(yōu)化怎么做搜索
  • asp網(wǎng)站程序下載今日軍事新聞?lì)^條視頻
  • 網(wǎng)站費(fèi)用估算信息流廣告代理商排名
  • 關(guān)于醫(yī)院建設(shè)網(wǎng)站的請(qǐng)示外鏈吧
  • 網(wǎng)站開發(fā)招標(biāo)文件范本互聯(lián)網(wǎng)推廣招聘
  • 網(wǎng)站建設(shè) 大公司網(wǎng)站代搭建維護(hù)
  • 語(yǔ)言做網(wǎng)站免費(fèi)設(shè)計(jì)模板網(wǎng)站
  • 注銷建設(shè)工程規(guī)劃許可證在哪個(gè)網(wǎng)站營(yíng)銷策劃精準(zhǔn)營(yíng)銷
  • 賽扶做網(wǎng)站推廣拉新任務(wù)的平臺(tái)
  • 網(wǎng)站開發(fā)總結(jié)文檔百度問(wèn)答官網(wǎng)
  • 設(shè)置個(gè)網(wǎng)站要多少錢黑馬培訓(xùn)是正規(guī)學(xué)校嗎
  • 網(wǎng)站如何做導(dǎo)航條下拉菜單收錄入口在線提交
  • 建網(wǎng)站要學(xué)什么手機(jī)優(yōu)化大師官方免費(fèi)下載
  • 電商網(wǎng)站開發(fā)實(shí)驗(yàn)報(bào)告seo算法是什么
  • 手機(jī)上能不能制作網(wǎng)站開發(fā)百度一下百度知道
  • 江蘇做網(wǎng)站公司抖音搜索seo
  • 青島網(wǎng)站推廣優(yōu)化百度號(hào)碼認(rèn)證