高级多线程控制类

在讲解高级多线程控制类之前,我们需要把前面的一点知识再补上:并且对比一下几种方法:

yield() 方法: 当前正在执行的线程(Running 状态),如果调用了yield方法,代表着它自愿的放弃了对CPU资源的占用,转化为runnable状态。
sleep(Time) : 线程休眠一段时间,但是休眠过程中仍然保持着对对象锁的占用
wait : 线程等待,会释放掉对对象锁的占用
join() : 一个线程使用了join方法,代表着必须等待着自己执行完毕,其他线程才能继续执行, 一般用于另一个线程启动之前调用, t 和 t1 是两个线程

      t.start(); // Line 15
      t.join(); // Line 16
      t1.start();

interrupt(中断): 中断是一个信号量(true, false),会对sleep,wait,join起作用,线程会不断检测这个信号量,通过抛出InterruptedException对中断做出回应, 用于通知处于这些状态的线程可以从这些状态中走出来了,从而恢复线程

synchronized 是一种重量级的同步方式,多个线程一旦要同时访问某一synchronized块,就会发生等待,然后线程就得一致等下去,现在Java提供了机制进行并发的控制,在 java.util.concurrent 包下

补充的一个知识点: synchronized 修饰的成员变量应该是私有的,如果是共有的,就可以直接通过对象来调用进行修改了,synchronized 就不起作用了

接下来,我们简单介绍一下高级多线程控制类里的几个重要的类:

线程池(使用ThreadPoolExecutor创建线程池,而不是Executor创建线程池):

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值