Java スレッド ロック
Java スレッドで synchronized キーワードを使用して同期を実現します
synchronized はメソッドをロックし、クラスをロックし、オブジェクトをロックし、コード ブロックをロックできます
メソッド ロック
// 加在方法上面的同步锁是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(); } } }
オブジェクト ロック
電車の切符の販売を例に挙げてみましょう
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 中国語 Web サイトに注目してください。