Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

How to use Lock and Condition to realize exclusive synchronous Communication in JAVA

Shulou Source: shulou.com Published: 2022-06-02 11:08:12 09月14日 Update

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.

Tags: Synchronization communication content articles more knowledge articles good quality reference help related Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno vpn Redmi MySQL Apple NVidia