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

本文详细介绍了在Java中如何创建、启动、终止线程,以及如何实现线程间的挂起、恢复、阻塞、唤醒等操作。通过具体的方法讲解,帮助读者掌握线程控制的基本技巧。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值