67.Java-資源搶奪案例(使用synchronized)
- 呼叫類
package com.test.thread;
public class Home {
public static void main(String[] args) {
ShareRegion share = new ShareRegion();
new Thread(new Producer(share)).start();
new Thread(new Consumer(share)).start();
}
}
- 資源共享類
package com.test.thread;
public class ShareRegion {
private String name;
private String sex;
boolean isProduce = true;
synchronized public void setterData(String name,String sex) {
try {
if (!isProduce) {
this.wait();
}
this.name = name;
Thread.sleep(10);
this.sex = sex;
isProduce = false;
this.notifyAll();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
synchronized public void getterData() {
try {
if(isProduce) {
this.wait();
}
System.out.println(this.name+"/"+this.sex);
isProduce = true;
this.notifyAll();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 生產者
package com.test.thread;
import java.lang.Runnable;
public class Producer implements Runnable{
private ShareRegion share = null;
public Producer(ShareRegion share){
this.share = share;
}
@Override
public void run() {
for (int i = 0; i < 50; i++) {
if (i%2 == 0) {
share.setterData("春哥", "男");
}else {
share.setterData("鳳姐", "女");
}
}
}
}
- 消費者
package com.test.thread;
import java.lang.Runnable;
public class Consumer implements Runnable{
private ShareRegion share = null;
public Consumer(ShareRegion share){
this.share = share;
}
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 50; i++) {
share.getterData();
}
}
}
相關文章
- 大資料資源爭奪戰此起彼伏,對使用者而言是福是禍大資料
- synchronized的使用(一)synchronized
- 經典dp--搶家奪舍系列之GO寫法Go
- 使用Hazelcast作為Spring資料儲存庫的開源案例ASTSpring
- Keepalived+Nginx高可用案例(搶佔式與非搶佔式)Nginx
- transient和synchronized的使用synchronized
- 使用 Synchronized 關鍵字synchronized
- 為與谷歌搶奪使用者,微軟計劃將ChatGPT嵌入其必應搜尋引擎谷歌微軟ChatGPT
- 搶紅包案例分析以及程式碼實現
- IO的資料集使用案例
- Chroma向量資料庫使用案例資料庫
- 搶紅包案例分析以及程式碼實現(三)
- 搶紅包案例分析以及程式碼實現(二)
- 搶紅包案例分析以及程式碼實現(四)
- Jmeter5.0 搶紅包併發操作案例JMeter
- 業務系統中資源爭奪情況是不存在的 - udidahan
- 西雅圖AirBnB資料分析的開源案例AI
- 資訊資源管理文字題之“結合案例分析資訊資源規劃包含的內容”
- 理解並正確使用synchronized和volatilesynchronized
- Android中使用Drawbl資源Android
- 使用 Addressables 來管理資源
- FPGA時鐘資源使用FPGA
- synchronizedsynchronized
- Java多執行緒——synchronized的使用示例Java執行緒synchronized
- Java培訓教程之使用Lock取代synchronizedJavasynchronized
- 奪命雷公狗-----React---24--小案例之react經典案例todos(單條任務的刪除)React
- 《甜蜜家園》百度雲【1280HD清晰雙語】網盤(搶先資源)無刪減資源連結分享
- Dynamics 365(三)WEB資源使用Web
- Terraform使用案例ORM
- Semaphore使用案例
- synchronized與Lock的區別與使用詳解synchronized
- @Java | Thread & synchronized – [ 執行緒同步鎖 基本使用]Javathreadsynchronized執行緒
- MongoDB案例分享:如何使用oplog恢復資料MongoDB
- synchronized 原理synchronized
- Synchronized bnsynchronized
- synchronized探究synchronized
- synchronized原理synchronized
- Spark SQL:JSON資料來源複雜綜合案例實戰SparkSQLJSON