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();
}
}
}
相關文章
- arping強制搶奪ip
- 為了搶奪話語權,IBM也決定開源機器學習平臺了IBM機器學習
- 大資料資源爭奪戰此起彼伏,對使用者而言是福是禍大資料
- 研究顯示移民並未搶奪美國人的工作
- 經典dp--搶家奪舍系列之GO寫法Go
- synchronized的使用(一)synchronized
- 為與谷歌搶奪使用者,微軟計劃將ChatGPT嵌入其必應搜尋引擎谷歌微軟ChatGPT
- 智慧穿戴市場好景喪失? 眾品牌仍拼搶奪食
- Keepalived+Nginx高可用案例(搶佔式與非搶佔式)Nginx
- 搶紅包案例分析以及程式碼實現
- 使用 Synchronized 關鍵字synchronized
- transient和synchronized的使用synchronized
- 使用Hazelcast作為Spring資料儲存庫的開源案例ASTSpring
- 搶奪移動入口 聯想控股豪擲3.7億佈局收購
- 虛擬機器IO資源爭搶的解決方法虛擬機
- 微軟加緊結盟惠普 欲搶奪高效能運算市場微軟
- 搶紅包案例分析以及程式碼實現(四)
- 搶紅包案例分析以及程式碼實現(三)
- 搶紅包案例分析以及程式碼實現(二)
- Jmeter5.0 搶紅包併發操作案例JMeter
- Synchronized關鍵字的使用synchronized
- java中synchronized使用方法Javasynchronized
- 爭奪蘋果訂單 ASE與富士康“大打出手”搶矽品蘋果
- 上市公司爭搶IP資源 “IP工廠”獲益頗豐
- IO的資料集使用案例
- Chroma向量資料庫使用案例資料庫
- 西雅圖AirBnB資料分析的開源案例AI
- 【資源管理器】資源使用者組、資源計劃、資源計劃指令
- 微軟CEO:Windows 10免費和跨平臺是為了從蘋果和谷歌手裡搶奪手機使用者微軟Windows蘋果谷歌
- Java同步塊(synchronized block)使用詳解JavasynchronizedBloC
- synchronizedsynchronized
- Linux Foundation資料說話:為什麼開源開發者這麼搶手Linux
- iOS監控:資源使用iOS
- 奪命雷公狗-----React---24--小案例之react經典案例todos(單條任務的刪除)React
- Spark SQL:Hive資料來源複雜綜合案例實戰SparkSQLHive
- Spark SQL:JDBC資料來源複雜綜合案例實戰SparkSQLJDBC
- Java多執行緒——synchronized的使用示例Java執行緒synchronized
- Java培訓教程之使用Lock取代synchronizedJavasynchronized