
2019-11-02 4198

2019-03-18 2902

2020-02-13 2755

2019-08-19 2730

2020-04-16 2643
Callable call()方法有返回值,返回的是传入的类型的数据 FutureTask 有返回值,实现了runnableFuture接口,可以当做runnable来用,FutureTask 接收C
1,CyclicBarrier 屏障:当线程Ta先执行到了await方法时候,等待;然后Tb又执行到了await方法,继续等待,直到最后一个线程执行到了他自己的await方法之后,图中的三个线程才会继
让线程同时进行,闭锁 一个或多个线程,等待其他线程执行完之后再执行 比如启动web框架,主线程会等待所有初始化线程执行完之后再继续执行 注意:1,计数器和线程数并不是一对一的关系。计数器可以远大于线程
fork/join框架 分而治之 在必要情况下,将一个大任务拆分(fork)成若干个相同的小任务(拆分到不可拆分时),再将一个个的小任务运算的结果进行join汇总 动态规划 分割成相同的小问题,但是小
public class ProducerAndConsumer { private static int cp = 0; private static int allNum = 20
提供一个变量的副本,线程的隔离。 spring在事务的部分用到了ThreadLocal,让每个线程保存自己的连接,不在同一连接的话不会形成事务 public class UserThreadLocal