并发-理解并发

线程调度在Java中分为抢占式和协同式。线程创建主要通过继承Thread或实现Runnable接口。中断线程时,连续调用start()会抛出异常。线程生命周期包括初始、运行、阻塞、等待、超时和终止状态。进程间通信涉及管道、信号、消息队列、共享内存和信号量。join()用于控制线程执行顺序,synchronized关键字和Volatile解决并发问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述

线程调度方式

线程调度是指系统为线程分配CPU使用权的过程,有两种方式,java为抢占式线程调度
抢占式线程调度
协同式线程调度

线程创建方式

官方说有两种:一种是派生Thread,一种实现Runnable 方式;但本质就是一种new Thread();方式
也有说:继承Thread,实现Runnable ,实现Callable,以及线程池方式,总共四种
其中callable本质是转换Runnable 的方式,线程池方式说到底不是创建,而是池化技术,避免反复创建
所以,以官方说法为主:两种创建线程的方式

线程中断:interrupt()
在这里插入图片描述
syart()方法被调用两次会抛出异常

线程的生命周期

初始
运行
阻塞
等待
超时等待
终止

进程之间的通讯机制

管道
信号
消息队列
共享内存
信号量
套字接

管道

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T1,T2,T3三个线程依次执行方案

在这里插入图片描述

join()。T3想要T2执行完再执行,需要T3线程调用T2的jion()方法【join的含义就是把T1线程加到T2线程执行的代码中去,把T1的代码执行完,T2剩下的代码才能执行】
在这里插入图片描述
在这里插入图片描述

synchorized内置锁

在这里插入图片描述
在这里插入图片描述

Volatile

在这里插入图片描述

方法和锁

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值