【java多线程与并发库】---传统java多线程<5> 线程控制

1由于资源的有限性以及线程之间运行步调的一致性,多个线程在并发执行时,一方面可能会竞争使用同一类资源,另一方面也可能需要保持一定的先后执行顺序。因此,编写多线程程序时,必须要考虑如何对线程进行有效控制,使它们能够合理地使用资源,并保持正确的执行顺序。

 

2Thread类中线程控制方法

 

 

3

1.线程的创建与启动

  在程序中用new运算符创建一个线程时,还需要调用线程的start()成员方法,才能使线程从新建状态转换为可运行状态。如果线程获得了其运行所需的全部资源后就可以执行run()方法在CPU上运行。

 

2.线程的终止

  调用线程的stop()成员方法可以终止当前线程的执行,使线程进入死亡状态。从JDK1.2开始,stop()方法已被废弃。

 

3.线程的挂起和恢复

  (1)sleep()方法

 void sleep(long millis);

 void sleep(long millis,long nanos); 

 

 (2) suspend()方法和resume()方法

 

4.线程的阻塞和唤醒

  wait()方法使当前线程阻塞,等待某一事件的发生

  void wait(long timeout) throws InterruptedException;

  void wait(long timeout,int nanos) throws InterruptedException;

 

  notify()方法用来唤醒一个处于阻塞状态的线程,任何一个已经满足了被唤醒条件的线程都可能被唤醒。而notifyAll()方法则用于唤醒所有处理阻塞状态的线程。

  void notify();

  void notifyAll()

 

5.线程的让步

 yield()方法可以使当前执行的线程让出CPU给其他线程执行,强制线程间合作。

 

6.等待其他线程结束

  一个线程A调用另外一个线程Bjoin()方法可以使线程A暂停运行,直至线程B终止。 void join() throws InterruptedException

  void join(long timeout) throws InterruptedException

  void join(long milliseconds int nanoseconds) throws InterruptedException

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值