Heim > Java > javaLernprogramm > Detaillierte Einführung und Beispielcode der Java-Thread-Sperre

Detaillierte Einführung und Beispielcode der Java-Thread-Sperre

高洛峰
Freigeben: 2017-01-11 15:41:17
Original
1382 Leute haben es durchsucht

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();
    }
  }
Nach dem Login kopieren

Klassensperre

public synchronized void print(String msg) {
    // 类锁
    synchronized (MyThread.class) {
      System.out.println(msg);
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
Nach dem Login kopieren

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();
      }
    }
 
  }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage