![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java并发
主要为记录编程思想中并发内容的学习
coderPlus
这个作者很懒,什么都没留下…
展开
-
线程之间的协作
一、概览 在线程之间共享受限资源中,通过使用锁(互斥)来同步两个任务的行为,从而使得一个任务不会干涉另一个任务的资源。线程之间的协作使得多个任务可以一起工作去解决某个问题。现在问题不是彼此之间的干涉,而是彼此之间的协调,因为在这类问题中,某些部分必须扎其他部分被解决之前解决。 任务协作的关键是通过任务之间的握手,握手也是通过互斥这个基础特性来实现。互斥能够确保只有一个任务可以响应某个信号,这样就可...原创 2020-01-20 17:14:23 · 180 阅读 · 0 评论 -
终结任务
一、通过条件判断退出任务 任务通过判断boolean值来确定何时终止它自己 实例代码: public class OrnamentGarden{ public static void main(String[] args) throws InterruptedException { ExecutorService service = Executors.newCachedT...原创 2020-01-05 21:36:32 · 99 阅读 · 0 评论 -
共享受限资源
一、解决共享资源竞争 1、原因: 我们永远不知道一个线程何时在运行。比如你坐在桌子边,正要去叉盘子中的最后一片实物,都够着它时,突然这片食物消失了,因为你的线程被挂起,另一个用餐者坐下并吃掉了它。 2、解决方式: 当一个资源被一个任务使用时,在其上加锁。第一个访问某项资源的任务必须锁定这项资源,是其他任务在被 解锁之前无法访问它,其被解锁之时,另一个任务就可以锁定这项资源并使用它。 方案: 基本上...原创 2019-12-31 11:09:16 · 165 阅读 · 0 评论 -
基本的线程机制
线程是比进程更轻量级的调度执行单位,各个线程既可以共享进程资源(内存地址、文件IO),又可以独立调度(线程是CPU调度的最小单元)。 多进程和多线程的区别: 1、本质区别在于每个进程拥有自己一整套变量,线程则是共享数据。因此共享变量使线程之间的通信比进程之间的通信更有效、更容易。 2、与进程相比较,线程更“轻量级”,创建、撤销一个线程比启动新进程的开销要小的多。 一、定义任务 1)通过实现Runn...原创 2019-12-31 11:08:34 · 246 阅读 · 0 评论