How to realize Thread Communication in Java
Today, I will talk to you about how to achieve thread communication in Java, many people may not know much about it. In order to make you understand better, the editor has summarized the following content for you. I hope you can get something according to this article.
1. Synchronized plus wait/notify
/ * use of wait and notify * wait and notify must be applied in synchronized blocks or methods * the following code controls each other's output like ballroom dancing * / public class MutiThread_WaitNotify {public static void main (String [] args) {final Object lock = new Object () Thread a = new Thread (new Runnable () {@ Override public void run () {synchronized (lock) {try {lock.wait (); System.out.println ("A muri 1"); lock.notify () Lock.wait (); System.out.println ("Amur2"); lock.notify (); lock.wait (); System.out.println ("Amur3"); lock.notify () } catch (InterruptedException e) {e.printStackTrace ();}) Thread b = new Thread (new Runnable () {@ Override public void run () {synchronized (lock) {try {System.out.println ("Bmuri 1"); lock.notify (); lock.wait () System.out.println ("Bmer2"); lock.notify (); lock.wait (); System.out.println ("Bmer3"); lock.notify (); lock.wait () System.out.println ("Bmur4");} catch (InterruptedException e) {e.printStackTrace ();}); a.start (); b.start ();}}
2. ReentrantLock plus Condition mode
/ * * use of ReentrantLock and Condition * when using await and signal of Conditioin, these two methods must be written after the lock method of ReentrantLock * / public class MutiThread_ReentrantLock_Condition {public static void main (String [] args) {ReentrantLock lock = new ReentrantLock (); Condition condition = lock.newCondition (); int iTunes 1; for (; I)