并发编程
文章平均质量分 74
obession
这个作者很懒,什么都没留下…
展开
-
并发编程1--并发问题的三个陷阱
一、什么是并发做饭的时候,你需要洗菜,切菜,烧水,炒菜,作为单核CPU的你,可以选择按照顺序完成这些任务,也可以在烧水的同时洗菜,切菜。对应操作系统,就是CPU在烧水进行的时候不等待(阻塞)水烧好了再做下一步,而是直接去(线程切换)洗菜切菜。好了,并发就是同时进行多件事情的操作(多线程),并发完成任务会更快,CPU利用率更高。二、并发一定更快吗还是烧水这个例子,从烧水到去洗菜的地方,也需要你...原创 2019-03-30 20:30:05 · 282 阅读 · 0 评论 -
并发编程3--线程通信
线程之间通信一、wait/notifywait/notify是等待通知的组合,以超时回调举例线程A判断回调标志flag,为true,回调成功,根据结果继续往下执行,否则阻塞伪代码: while(!flag){ Thread.sleep(1000); } //continue do something...不足之处...原创 2019-04-14 23:37:11 · 233 阅读 · 0 评论 -
并发编程2--volatile、synchronized关键字和lock接口
一、volatile关键字并发编程1–并发问题的三个陷阱已经写了,解决可见性问题和有序性问题就可以使用volatile来修饰变量1、保证可见性volatile修饰变量后,该变量的数据更改在操作系统会做两件事情:①、把当前的CPU处理器的缓存中修改后的A变量写回系统内存②、其他CPU缓存了该变量的内存地址里的址无效所以能保证了变量的可见性2、保证有序性可见性问题是通过禁用缓存的方式...原创 2019-04-14 23:39:28 · 318 阅读 · 0 评论