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
相关阅读
#include <QtGui/QApplication> #include <qthread.h> #include <windows.h> #include "mainwindow.h" /*创建一个线程类*/ cla
转载(https://www.cnblogs.com/soundcode/p/6295910.html)加上了自己的补充和理解 为何要使用同步? java允许多线程并发控制,当
import java.util.concurrent.CyclicBarrier; public class CyclicBarrierTest2 { static CyclicBarrier c = new CyclicBar
1. Thread类 C#多线程编程中Thread类需要包含名称空间System.Threading。class Program { static void Main(strin
Socket编程(C语言实现)——基于TCP协议,基于UDP协议(多线
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该