线程方法详解

线程停止工作

1:自然执行完
2:抛出异常
3:stop() , resume() , suspend() :强制停止线程,会造成资源的无法释放
4:interrupt() : 中断一个线程,并不是强制停止。打个招呼
isInterrupted() : 判断线程是否处于中断状态
static 方法的 interrupted() 方法:判断线程是否处于中断状态,并把标志位改为false
5:一个方法如果抛出InterruptedException,会把中断的标志位改为false,需要在catch中手动终止
sleep(),join(),wait() : java 内 阻塞方法会抛出InterruptedException异常

线程状态

1:新建
2:就绪(拿到执行权开始运行)
3:运行
4:阻塞
5:死亡

线程方法

1:yield()–>放弃执行权,重新进入cpu的调度范围
2:守护线程,和主线程一起死,守护线程中,如果遇到try,finally,finally中的内容不一定执行

synchronized

1:对象锁
不同的对象可以一起执行,互不打扰,锁的是每个类的实例
2:类锁
锁的是类的class,在虚拟机中只有一份

volatile(具有可见性,没有原子性)

轻量级的同步机制,读取时获取主内存的数据,保存可见性,至于原子性,多线程下不具备原子性,一个操作可能对应多条执行指令

wait() notify() notifyAll()

为Object类所有的方法,wait() 等待,notify() 唤醒,某一线程执行完唤醒结束,notifyAll() 会唤醒所有等待的线程
使用范式:
等待方:
1:获取锁对象
2:使用循环,不满足条件.wait 等待
3:条件满足,执行业务操作
通知方:
1:获取锁对象
2:改变判断条件
3:获取执行结果

join()

线程加入方法,加入以后优先执行加入的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值