java多线程
云舒编程
字节、阿里资深工程师。做过营销、支付、百万级Feed流优化、权限系统、网关。专注于技术原理分享,用最简单的话分享最复杂的技术原理
展开
-
java多线程—优先级反转问题
什么是优先级反转假如有三个任务A,B,C。优先级A>B>C。现在C获得了临界区F的锁,进入了临界区。这个时候A变为了就绪状态,由于A的优先级最高,所以马上得到了运行,假设A也需要进入临界区F,由于C持有了该临界区的锁,所以A只能被阻塞。然后此时B也处于了就绪状态,B的优先级比C高,所以B先被运行。这样就导致了比A优先级低的B在A之前获得了运行,这就是优先级反转。解决方案 优先级继承 优先级继承是当原创 2017-05-23 15:18:02 · 515 阅读 · 0 评论 -
java多线程—cpu缓存
CPU缓存网页浏览器为了加快速度,会在本机存缓存以前浏览过的数据; 传统数据库或NoSQL数据库为了加速查询, 常在内存设置一个缓存, 减少对磁盘(慢)的IO. 同样内存与CPU的速度相差太远, 于是CPU设计者们就给CPU加上了缓存(CPU Cache). 如果你需要对同一批数据操作很多次, 那么把数据放至离CPU更近的缓存, 会给程序带来很大的速度提升. 例如, 做一个循环计数, 把计数变量放到原创 2017-05-23 16:46:49 · 1166 阅读 · 0 评论