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 중국어 웹사이트의 기타 관련 기사를 참조하세요!