How to use Lock and Condition to realize exclusive synchronous Communication in JAVA
This article will explain in detail how to use Lock and Condition to achieve exclusive synchronous communication in JAVA. The content of the article is of high quality, so the editor will share it for you as a reference. I hope you will have a certain understanding of the relevant knowledge after reading this article.
Package com.study;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Demo {public static void main (String [] args) {Demo demo = new Demo (); final OutPutClass putPutClass = demo.new OutPutClass (); Thread thread = new Thread (new Runnable () {@ Override public void run () {while (true) {putPutClass.ins () }); thread.start (); Thread thread2 = new Thread (new Runnable () {@ Override public void run () {while (true) {putPutClass.des ();}); thread2.start ();} class OutPutClass {Lock lock = new ReentrantLock (); Condition condition = lock.newCondition (); private boolean isSync = true Public void ins () {lock.lock (); try {while (! isSync) {condition.await ();} Thread.sleep (1000L); System.out.println ("uploading...."); isSync = false; condition.signal ();} catch (InterruptedException e) {e.printStackTrace () } finally {lock.unlock ();}} public void des () {lock.lock (); try {while (isSync) {condition.await (); Thread.sleep (1000L);} System.out.println ("download ended...."); isSync = true; condition.signal () } catch (InterruptedException e) {e.printStackTrace ();} finally {lock.unlock ();} about how to use Lock and Condition to achieve exclusive synchronous communication in JAVA is shared here. I hope the above content can be helpful to everyone and learn more knowledge. If you think the article is good, you can share it for more people to see.