JAVA并发之基础概念
1.并发和并行举个例子并发(concurrency):并发的关键在于有处理多个任务的能力,但并不一定就是同时处理.
并行(parallelism):并行的关键在于同时处理多个任务
“并发”指的是程序的结构,“并行”指的是程序运行时的状态即使不看详细解释,也请记住这句话. 并行(parallelism)这个概念很好理解。所谓并行,就是同时执行的意思,无需过度解读。判断程序是否处于并行的状态,就看同一时刻是否有超过一个“工作单位”在运行就好了。所以,单线程永远无法达到并行状态。 要达到并行状态,最简单的就是利用 注意: Python 的多线程由于存在著名的 GIL( 并发(concurrency)要理解“并发”这个概念,必须得清楚,并发指的是程序的“结构”。当我们说这个程序是并发的,实际上,这句话应当表述成“这个程序采用了支持并发的设计”。好,既然并发指的是人为设计的结构,那么怎样的程序结构才叫做支持并发的设计? 正确的并发设计的标准是:两个任务可以在重叠的时间段内启动、运行和完成(two tasks can start,run,and complete in overlapping time periods)。 并发 并行 区分的关键:是否是同时处理多个任务 2.同步和异步
区分的关键同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication) 3.阻塞与非阻塞
区分的关键阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |