必威体育Betway必威体育官网
当前位置:首页 > IT技术

java-多线程-CountDownLatch(闭锁) CyclicBarrier(栅栏) Semaphore(信号量)-

时间:2019-10-29 07:15:42来源:IT技术作者:seo实验室小编阅读:79次「手机版」
 

java多线程

代码来源网络共享)

这几个工具类其实说白了就是为了能够更好控制线程之间的通讯问题~

countdownlatch 

是一个同步的辅助类,允许一个或多个线程一直等待直到其它线程完成它们的操作。

常用的API其实就两个:await()countDown()

例子:例子:rodert现在去做实习生了,其他的员工还没下班,rodert不好意思先走,等其他的员工都走光了,rodert再走。

package threadMy;

import java.util.concurrent.CountDownLatch;

public class CountDownLatchTest {

	public static void main(String[] args) {

		final CountDownLatch countDownLatch = new CountDownLatch(5);

		System.out.println("现在6点下班了.....");

		// rodert线程启动
		new Thread(new Runnable() {
			@Override
			public void run() {

				try {
					// 这里调用的是await()不是wait()
					countDownLatch.await();
				} catch (InterruptedException e) {
					e.printstacktrace();
				}
				System.out.println("...其他的5个员工走光了,rodert终于可以走了");
			}
		}).start();

		// 其他员工线程启动
		for (int i = 0; i < 5; i++) {
			new Thread(new Runnable() {
				@Override
				public void run() {
					System.out.println("员工xxxx下班了");
					countDownLatch.countDown();
				}
			}).start();
		}
	}
}

CyclicBarrier

文章最后发布于: 2019-01-11 18:15:32

相关阅读

Qt之多线程

#include <QtGui/QApplication> #include <qthread.h> #include <windows.h> #include "mainwindow.h" /*创建一个线程类*/ cla

JAVA多线程——实现同步

转载(https://www.cnblogs.com/soundcode/p/6295910.html)加上了自己的补充和理解 为何要使用同步? java允许多线程并发控制,当

CyclicBarrier实例一

import java.util.concurrent.CyclicBarrier; public class CyclicBarrierTest2 { static CyclicBarrier c = new CyclicBar

C#常用多线程方法

1.  Thread类 C#多线程编程中Thread类需要包含名称空间System.Threading。class Program { static void Main(strin

Socket编程(C语言实现)——基于TCP协议,基于UDP协议(多线

Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该

分享到:

栏目导航

推荐阅读

热门阅读