首頁 >Java >java教程 >java同步的使用條件有哪些

java同步的使用條件有哪些

WBOY
WBOY轉載
2023-04-19 21:16:05887瀏覽

1、為了保持跨執行緒的正確可見性,必須使用synchronized或volatile。

2、讀取可能是另一個執行緒最終寫入的變數。

3、寫一個可能被另一個執行緒讀取的變數。

實例

class SellTicket implements Runnable {
private int tickets = 10;
 
public void run() {
 
while (true) {
if (tickets > 0)
sell();
else
return;
}
 
}
 
public synchronized void sell() {
if (tickets > 0) {
System.out.println(Thread.currentThread().getName() + "卖出第" + tickets + "张票");
tickets--;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
 
}
}
}
 
public class TicketTest {
public static void main(String args[]) {
SellTicket t = new SellTicket();
 
new Thread(t, "窗口1").start();
new Thread(t, "窗口2").start();
new Thread(t, "窗口3").start();
 
System.out.println("主线程结束");
 
}
}

以上是java同步的使用條件有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除