java 스레드 잠금
Java 스레드에서 동기화 키워드를 사용하여 동기화를 달성하세요.
동기화는 메소드 잠금, 클래스 잠금, 객체 잠금 및 코드 블록 잠금
메서드 잠금
// 加在方法上面的同步锁是this public synchronized void print() { System.out.println("同步方法"); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } }
클래스 잠금
public synchronized void print(String msg) { // 类锁 synchronized (MyThread.class) { System.out.println(msg); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } }
객체 잠금
판매 Take 기차표 예시
public class Window extends Thread { public Window(String name) { super(name); } static int tick = 100; static String obj = new String(); @Override public void run() { // 开始卖票 while (tick > 0) { // 同步代码块 // 一把锁 钥匙 // 所有的线程 必须在这里排队 synchronized (obj) { if (tick > 0) { System.out.println(getName() + "卖出了第【" + tick + "】张票");// 失去了cpu资源 tick--; } } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }
읽어주셔서 감사합니다. 모두에게 도움이 되기를 바랍니다. 이 사이트를 지원해 주셔서 감사합니다!
Java 스레드 잠금에 대한 자세한 소개와 샘플 코드 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!