标签:
概念部分:
1.并发和并行的区别:
并发 (Concurrency):一个处理器“同时”处理多个任务
并行 (Parallelism):多个处理器 “同时”处理多个任务
2.多线程的优点和缺点:
多线程的优点:
可并行处理任务,减少单个任务的等待时间
线程较进程或子进程系统开销小
线程间较容易共享资源
多核情况下可充分利用CPU资源
JVM部分:
《Tinking In Java》部分:
1.并发具有可论证的确定性,但是实际上具有不可确定性。
2.如果没有任务会阻塞,那么在单处理器机器上使用并发就没有任何意义。
3.某些编程语言被设计为可以将并发任务彼此隔离,这些语言通常被称作函数型语言——erlang。
4.语法糖:while(countDown-- >0)、private final int id = taskCount++; 使用后置的++和--,可以进行计数器加减的操作,方便又清晰。
5.各种执行器(Executor):
CachedThreadPool:一般首选,会创建于所需数量相同的线程。
FixedThreadPool:事先分好好线程,限制了线程数量。
SingleThreadExecutor就像是线程数量为1的FixedThreadPool(它提供了长期存活和并发保证,适合于某些特定任务)。SingleThreadExecutor会序列化所有提交给它的任务。
6.如果希望任务完成时能返回值,用callable代替runnable接口。
7.
标签:
原文地址:http://www.cnblogs.com/xujanus/p/4384559.html