![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java并发编程原理
深入并发编程原理
兽哥哥啊
这个作者很懒,什么都没留下…
展开
-
多线程状态改变图解
下面这是一张线程状态切换示意图1)新创建一个新的线程对象后,再调用它的start()方法,系统会为此线程分配CPU资源,使其处于Runnable(可运行)状态,这是一个准备运行的阶段。如果线程抢占到CPU资源,此线程就处于Running(运行)状态。2) Runnable状态和Running 状态可相互切换,因为有可能线程运行一段时间后,有其他高优先级的线程抢占了CPU资源,这时此线程就从Running状态变成Runnable状态。线程进人Runnable状态大体分为如下5种情况:List原创 2020-10-08 21:19:57 · 140 阅读 · 0 评论 -
多线程核心技术(三)--线程间通信
等待/通知机制的实现wait方法方法wait的作用是使当前执行代码的线程进行等待,wait方法是Object类的方法。该方法用来将当前线程置入“预执行队列”中,并且在wait所在的代码处停止执行,直到接到通知或被中断为止。在调用wait方法之前,线程必须获得该对象的对象级别锁。即只能在同步方法或同步代码块中调用wait方法。在执行wait方法后,当前线程释放锁。在从wait返回前,线程与其他线程竞争重新获得锁。如果调用wait时没有持有适当的锁,则抛出IllegalMonitorStateExcepti原创 2020-09-27 21:36:25 · 81 阅读 · 0 评论 -
java多线程核心技术(二)对象及变量的并发访问
线程安全与非线程安全非线程安全会在多个线程对同一个对象中的实例变量进行并发访问时发生,产生的后果就是脏读,也就是取到的数据其实是被更改过的。而“线程安全”就是以获得的实例变量的值是经过同步处理,不会出现脏读的现象。线程安全问题产生的原因:1.多个线程在操作共享的数据。2.操作共享数据的线程代码有多条。当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算。就会导致线程安全问题的产生。解决思路就是将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程不可以参与运算。必须要原创 2020-09-24 20:06:50 · 76 阅读 · 0 评论 -
java多线程核心技术(一) 多线程技能
第一章 java多线程技能1.1进程和多线程的概念进程是操作系统的基础,当一个程序载数据集合运行时的集合,线程则是进程中独立运行的子任务。比如QQ.exe运行的时候 你可以同时聊天 还有视频。1.1.1使用多线程的好处同样的俩个任务,任务1和任务2如果在单任务的环境中,需要一个任务任务的去执行,而在多任务的情况中 我可以俩个任务同时执行,而且可以在俩个任务中进行随意切换。这样使用多线程的好处显而易见,使CPU的利用率大大的得到提升。1.2 多线程的使用1.2.1实现多线程在java的jdk原创 2020-09-20 19:47:34 · 279 阅读 · 0 评论