>  기사  >  Java  >  Java 동기화를 사용하기 위한 조건은 무엇입니까?

Java 동기화를 사용하기 위한 조건은 무엇입니까?

WBOY
WBOY앞으로
2023-04-19 21:16:05813검색

1. 스레드 전체에서 올바른 가시성을 유지하려면 동기화 또는 휘발성을 사용해야 합니다.

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으로 문의하시기 바랍니다. 삭제