
多线程
文章平均质量分 85
还不睡呀你。
这个作者很懒,什么都没留下…
展开
-
死锁与哲学家吃饭问题
一、死锁情景 有5个哲学家,围坐在一张圆桌子上,桌子上放着5根筷子,分别位于两个哲学家之间,如图所示: 他们有时会吃饭,有时会思考。吃饭时,哲学家会先拿起左手的那根筷子,再去拿右手的那根。当一个哲学家拿到两根筷子时,就可以开始吃饭,吃着吃着,又会放下筷子开始思考。 以上描述的场景,就会出现死锁:在某一时刻,所有的哲学家同时拿起左手边的筷子,再去拿右边的筷子时,发现已经被其他哲学家拿走了。此时,所有的哲学家都在等待另一根永远拿不到的筷子,就形成了死锁。 二、造成死锁的原因 造成死锁有3个条件,如果出现死锁,那原创 2020-10-11 00:17:23 · 646 阅读 · 0 评论 -
Java的volatile关键字
一、CPU缓存给多线程带来的挑战 我们先看一段简单的程序: public class VolatileTest { public static void main(String[] args) throws InterruptedException { MyThread t = new MyThread(); t.start(); Thread.sleep(1000); t.stop = true; // 语句1 } } cl原创 2020-09-25 16:05:56 · 154 阅读 · 0 评论 -
聊聊Java线程状态和常见误区
一、Java Thread文档 关于Java的线程状态,[Java Thread文档]讲的非常的清楚了,如果英文水平有4级的话,建议直接阅读文档。(https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.State.html) 二、Java线程状态 java的线程一共有6个状态:New,Runnable,Waiting,Timed_Waiting,Blocked,Terminate。 这里Java使用Thread类的内部枚举类进行表示,我删除文档原创 2020-09-05 17:22:26 · 281 阅读 · 0 评论