Home  >  Article  >  Java  >  What are the conditions for using java synchronization?

What are the conditions for using java synchronization?

WBOY
WBOYforward
2023-04-19 21:16:05813browse

1. In order to maintain correct visibility across threads, synchronized or volatile must be used.

2. Reading may be a variable that another thread eventually writes.

3. Write a variable that may be read by another thread.

Example

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("主线程结束");
 
}
}

The above is the detailed content of What are the conditions for using java synchronization?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete