【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

posted @ 2012-05-07 19:36  hibernate3例子  阅读(212)  评论(0编辑  收藏  举报