序言
常见四种并发的模式
Threads: 一个任务创建一个新的线程,线程创建销毁开销比较大,一般用的比较少。
Executors: 一个任务队列复用多个线程,减少了线程的创建和销毁的次数,常用。
ForkJoin: 多个任务队列加多个线程,一个线程正常只消费一个队列,自己的任务结束了可以窃取其他线程队列的任务,减少了线程对队列的竞争,java8并行流常用。
Actors: 一般一个任务队列加一个线程,单个actor串行消费队列的消息,几乎没有并发的冲突。可以通过actor分片提高任务的并行执行。
在一个方法中同时调用多个方法或者服务,并等待所有结果返回
并发偏重于多个人数交替进行,而多个任务之间,有可能还是串行。
并行是真正意义的同时进行。
多线程的原子性、可见性、有序性。
不要使用stop()方法终止线程
内部锁、重入锁、信号量、读写锁
Fork/Join框架