并发编程
Crazypokerk_
这个作者很懒,什么都没留下…
展开
-
join、yield、wait、sleep方法区别理解
参考各路网站及博客理解总结而来,如侵必删。join() 一直不能理解Java多线程里面的join()方法到底是干什么的,有什么用。API给出的解释是: Waits for this thread to die.但是好像join和die没有什么关系啊,为何要用join呢? 子线程join到主线程(启动程序的线程,比如c语言执行main函数的线程)。你的问题可能在于没有理解jo...原创 2019-02-13 12:12:20 · 1051 阅读 · 0 评论 -
什么情况下Java会产生死锁?
引言这个问题困扰了我很久,感觉知道个大概,但是又模模糊糊。包括怎么发现死锁?死锁是怎么产生的?产生死锁后如何排查等等。今天就一一总结以下以上知识点内容。死锁的产生首先,明确概念性问题,什么是 死锁(DeadLock)?所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁产生的4个必要条件:互斥条件:进程要求对所分配的资源(如...原创 2019-04-26 12:34:55 · 2428 阅读 · 0 评论 -
Java内存模型
为什么定义Java内存模型?现代计算机体系大部分是采用的对称多处理器的体系架构。每个处理器均有独立的寄存器组和缓存,多个处理器可同时执行同一进程中的不同线程,这里称为处理器的乱序执行。在Java中,不同的线程可能访问同一个共享或共享变量。如果任由编译器或处理器对这些访问进行优化的话,很有可能出现无法想象的问题,这里称为编译器的重排序。除了处理器的乱序执行、编译器的重排序,还有内存系统的重排序。...原创 2019-06-27 09:14:42 · 130 阅读 · 0 评论 -
七种方法让线程顺序执行
使用线程的 join() 方法 使用主线程的 join() 方法 使用线程的 wait() 方法 使用线程的线程池方法 使用线程的Condition(条件变量)方法 使用线程的CountDownLatch(倒计数)方法 使用线程的 CyclicBarrier (回环栅栏)方法...原创 2019-09-04 21:50:17 · 356 阅读 · 0 评论