您的位置:首页 > 编程语言 > Java开发

【Java】并发基础知识总结

2017-09-18 19:21 253 查看

并发基础知识总结

用并发解决的问题大体上可分为”速度”和”设计可管理性”两种

基本的线程机制

一个线程就是在进程中的一个单一顺序控制流;单个进程可以有多个并发执行的任务,但程序使得每个任务都好像拥有自己的CPU一样,其底层机制是切分CPU时间;在使用线程时,CPU将轮流给每个任务分配其占用时间;而多个CPU则允许程序将线程放在不同CPU上同时执行。

针对每个线程,一个单独的栈空间被分配给其使用

并发和并行的区别

并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要同一时刻发生。

并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。

并发和并行都可以是多个线程;如果多个CPU同时执行,则为并行;如果单个CPU执行,则为并发。

并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生

注意是否【同时】及【同时】的发生条件

并发(Concurrency)v.s. 顺序执行(Sequential)

几个例子简单描述一下:

并发:小明正在打游戏,小红给他打电话:小明接了电话,一心一意挂机,打完电话继续游戏。

顺序执行:小明正在打游戏,小红给他打电话:小明继续打游戏直到打完,小明接了小红电话。(小红坚持不懈地打电话给小明!=.=)

并行(Parallelism)v.s. 串行(Serial)

并行:小明正在打游戏,小红给他打电话,响了一声之后,要开始团战了:小明接了小红电话,一边打电话一边打团战,稳的不行。

串行:小明正在打游戏,小红给他打电话,响了一声之后,要开始团战了:小明专心接电话,专心挂机,打完挂了电话再继续打团。

标题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: