线程
一切从简单开始
千里之行,始于足下,往往最复杂的都是由最简单的衍生出的问题
展开
-
高并发场景 多线程,消息队列应用
高并发 高并发产生的应用场景:在同时很多人同时访问一个业务一样。例如很多人都想上厕所但是只有一个厕所,每次只能就去一个人一个人结束后另一个人才能上厕所这个属于单线程产生的效果 多线程 多线程:相当于一个业务有了更多的渠道去解决。例如上厕所现在多了一个厕所可以去缓解这种厕所压力。 以上两种场景唯一不变的是厕所每次只有一人能进行,还有上厕所的人,变的是厕所变多了 消息队列机制 消息队列:消...原创 2019-06-03 08:38:58 · 1927 阅读 · 4 评论 -
续 高并发存在的问题?
线程安全问题的根源? 可见性(主要是缓存引起的,由于cpu缓存 内存 io磁盘 ) 有序性(指令重排可能引起的线程安全) 其实可见性和有序性是分不开的程序的执行cpu可能会打乱指令优化执行顺序,但是这样会导致cpu中的数据可能会乱掉 class VolatileExample{ int x = 0; boolean flag = false; public v...原创 2019-06-17 11:51:35 · 150 阅读 · 0 评论 -
看这个例子,秒懂高并发多线程的关系
场景分析: 1.假如有一个坑里面有一个人,那么最传统的解决方式就是门(锁的临界点)带上锁其他人就不会进来了 2.有很多人排队,可能会出现拥挤的情况 所以引入了队列 中间件 需要将任务丢到队列中(先进先出) 有序执行任务 3.假如有多个坑,怎么能够让资源最优化 那么就有了线程池 把空置的坑丢到池中如果该坑未被占用则可以执行任务 4.假设每个人在做事前,能够多一份礼貌先问问厕所有没有人 那么就...原创 2019-10-11 08:49:57 · 200 阅读 · 0 评论