java并发编程世界概略图
并发编程概况图
一、我们先用一张概略图来展示一下
二、并发编程带来的好处和问题
并发编程的本质:
一个消耗时间任务我们如何去尽快的完成呢?现实生活中可能就是说给你加个人,两天的活儿一天干完吧
程序的世界里面也一样,给你加个线程,尽快搞完吧,**那么区别在哪里呢,**这就是并发编程带来的问题:
举个例子,弄五个苹果做个果盘:
-
人是智能的,可以较好的相互沟通来处理好分工,同步,协作
- 分工: 甲洗4个苹果,乙洗完1个苹果之后,然后切完摆盘
- 同步: 乙切苹果摆盘,甲不能参与
- 协作: 甲洗完4个苹果之后将苹果给乙去处理
-
那么程序木有那么智能,要怎么去用指令去处理这些动作呢?
-
怎么保证苹果木有洗漏了,某个苹果洗两遍,某个没洗
-
怎么保证乙在处理苹果的时候,甲不会干预
-
怎么保证在甲的任务完成以后乙才开始切苹果摆盘
-
并发编程的核心就是这三个词: 分工,同步,互斥
并发编程的核心就是这三个词: 分工,同步,互斥
所有的内容都是为了解决这三个问题,那么我们就可以从这些角度来了解并发世界