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