文章分类 -  多线程

摘要:Thread.Sleep(0) 并非是真的要线程挂起0毫秒,意义在于这次调用Thread.Sleep(0)的当前线程确实的被冻结了一下,让其他线程有机会优先执行。Thread.Sleep(0) 是你的线程暂时放弃cpu,也就是释放一些未用的时间片给其他线程或进程使用,就相当于一个让位动作。 在线程中 阅读全文
posted @ 2019-04-23 11:30 隔壁w王叔叔 阅读(518) 评论(0) 推荐(0)
摘要:先回答问题: (1)为什么wait()必须在同步(Synchronized)方法/代码块中调用? 答:调用wait()就是释放锁,释放锁的前提是必须要先获得锁,先获得锁才能释放锁。 (2)为什么notify(),notifyAll()必须在同步(Synchronized)方法/代码块中调用? 答:n 阅读全文
posted @ 2019-04-18 20:24 隔壁w王叔叔 阅读(619) 评论(0) 推荐(0)
摘要:线程可以进入任何一个它已经拥有的锁所同步着的代码块。 https://www.cnblogs.com/dj3839/p/6580765.html https://www.cnblogs.com/incognitor/p/9894604.html 两篇都要看 阅读全文
posted @ 2019-04-04 23:18 隔壁w王叔叔 阅读(87) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/lzh-blogs/p/7477157.html 阅读全文
posted @ 2019-04-04 22:34 隔壁w王叔叔 阅读(86) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/qq_42695926/article/details/83959620 阅读全文
posted @ 2019-04-04 21:02 隔壁w王叔叔 阅读(89) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/dolphin0520/p/3920407.html 阅读全文
posted @ 2019-04-03 17:14 隔壁w王叔叔 阅读(86) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/javazejian/article/details/72828483 阅读全文
posted @ 2019-03-20 14:58 隔壁w王叔叔 阅读(75) 评论(0) 推荐(0)
摘要:在早期的CPU当中,是通过在总线上加LOCK#锁的形式来解决缓存不一致的问题。因为CPU和其他部件进行通信都是通过总线来进行的,如果对总线加LOCK#锁的话,也就是说阻塞了其他CPU对其他部件访问(如内存),从而使得只能有一个CPU能使用这个变量的内存。比如上面例子中 如果一个线程在执行 i = i 阅读全文
posted @ 2019-03-20 13:53 隔壁w王叔叔 阅读(456) 评论(0) 推荐(0)
摘要:cpu与核心 物理核 物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数 虚拟核 所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总数为8线程。 在操作系统看来是8个核,但是实际上是4个物理核。 通过超线程技术可以实现单个物理核实现线 阅读全文
posted @ 2019-03-02 12:35 隔壁w王叔叔 阅读(1261) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/dolphin0520/p/3920373.html 2.volatile保证原子性吗? 从上面知道volatile关键字保证了操作的可见性,但是volatile能保证对变量的操作是原子性吗? 下面看一个例子: public class Test { 阅读全文
posted @ 2018-10-08 15:20 隔壁w王叔叔 阅读(216) 评论(0) 推荐(0)