并发编程 -线程、进程、fork-join、wait与notify

线程与线程之间是通过协作来调度的

需要结束一个线程,不推荐使用stop方法,因为该方法不一定会释放该线程所产生的资源回收。
推荐使用interrupt、isinterrupt、isinterrupted来配合使用

线程中共享变量ThreadLocal,用于存放当前线程内所使用的变量
需要注意:

1.使用时需要判断值是否为空,因为采用的弱引用,所以在gc时会被回收
2.使用完必须要remove,否则在gc回收后,该value将不会被获取到,除非再次执行get或set、clear时,才会去清除引用为null的数据。

wait和notify、synchronized使用

wait与notify + synchronized使用,必须在synchronized锁住的对象上才能使用wait/notify,否则会报错
synchronized是非公平锁,即每次执行到synchronized时,当前线程都会先去尝试获取锁,获取到了就立即执行,获取失败就进入等待状态,直到锁释放才会去抢锁。与AQS的实现Sync的实现上会有公平锁与非公平锁的选择。

工作密取

将自己的工作做完之后,将别人的工作拿来完成,做完了再把结果放回去
在fork-join中就使用到,在线程A完成了当前线程的任务,会去线程B拿一个任务来做,做完了再放回去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值