Explication
1. Il appartient à la classe Object. Une fois que l'objet a appelé la méthode wait, il libère le thread qui détient actuellement le verrou de l'objet et entre dans le file d'attente.
2. L'autre partie appelle notify pour réveiller le verrou du concurrent à partir d'un fil sélectionné au hasard dans la file d'attente, et l'autre partie appelle notifyall pour réveiller le verrou du concurrent à partir de tous les fils de la file d'attente. .
Exemple
public class Demo { public static void main(String[] args) { Demo demo = new Demo(); Thread t1 = new Thread(() -> { synchronized (demo) { System.out.println("t1 start"); try { demo.wait(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("t1 end"); } }); Thread t2 = new Thread(() -> { synchronized (demo) { System.out.println("t2 start"); System.out.println("t2 end"); demo.notify(); } }); t1.start(); t2.start(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!