【Java 并发】易混淆的KeyWords
来源:互联网 发布:ubuntu 启动器 图标 编辑:程序博客网 时间:2024/06/16 13:48
【Java 并发】易混淆的KeyWords
在学习并发编程时,有些KeyWords需要加以区分和理解
1,并发与并行
Concurrency,是并发的意思,并发就是只有一个CPU资源,程序(或线程)之间要竞争得到执行机会。换句话说就是多个线程被(一个)cpu 轮流切换着执行,由于切换时间很快,让人感觉好像线程是在同时进行,实际它们不是
Parallelism,即并行,指两个或两个以上事件(或线程)在同一时刻发生,是真正意义上的不同事件或线程在同一时刻,在不同CPU资源呢上(多核),同时执行。
举个栗子:
写代码时,女票的电话来了,你停止写代码去接电话,聊完后继续写代码,这时你就是并发,
写代码时,女票的电话来了,你一边写代码一边接电话,同时执行,这时你就是并行,
2,互斥,同步,异步
互斥,两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥。
同步,两个或两个以上的进程之间协同运行,而不是“同时运行”。线程之间按照规则运行,比如:A一段运行后,停下等待B运行结果,B开始运行后将结果给A,A继续运行。
同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的。而同步的任务之间则有顺序关系。
异步,和同步相反,同步是线程之间协同运行,按照规则顺序执行,执行完一个再执行下一个,需要等待、协调运行。而异步不需等得到结果才继续运行,它在等待的过程中继续完成自己的事情。
- 【Java 并发】易混淆的KeyWords
- Linux并发(易混淆的基本API)
- Java Keywords
- Java中易混淆的概念
- Java多线程中易混淆的概念
- JAVA Linkedlist易混淆的方法
- java 中易混淆的知识点1
- java常见的几个易混淆点
- java 混淆的原理
- Android的Java混淆
- Java易混淆知识点
- Java中易混淆
- java 易混淆知识点
- JAVA易混淆总结
- Java Language Keywords
- Java Language Keywords
- Java: Keywords Combination Summary
- Java 关键字(keywords)
- Android列表下拉刷新操作
- pytorch setup
- PHP和Redis实现在高并发下的抢购及秒杀功能
- MAC泛洪攻击
- 实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
- 【Java 并发】易混淆的KeyWords
- Android学习之Socket多个客户端即时通信聊天
- 实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
- 漫步最优化四十一——Powell法(下)
- 基于swing的手机号运营商查询程序
- 入坑centos笔记(二)
- Redhat6.5安装Oracle数据库及其常用操作
- 1051数字四的游戏
- Resilient Backpropagation