Java-Thread-Sperre
Verwenden Sie das synchronisierte Schlüsselwort in Java-Threads, um eine Synchronisierung zu erreichen
synchronized kann Methoden sperren, Klassen sperren, Objekte sperren und Codeblöcke sperren
Methodensperre
// 加在方法上面的同步锁是this public synchronized void print() { System.out.println("同步方法"); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } }
Klassensperre
public synchronized void print(String msg) { // 类锁 synchronized (MyThread.class) { System.out.println(msg); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } }
Objektsperre
zum Verkaufen Take Zugtickets als Beispiel
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(); } } } }
Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung dieser Seite!
Ausführlichere Einführungen in Java-Thread-Sperren und Artikel zum Beispielcode finden Sie auf der chinesischen PHP-Website!