java中线程概念描述

http://tech.ddvip.com   2007年10月29日    社区交流

本文详细介绍java中线程概念描述

  然后再调用notify()方法唤醒t1。t1接着上次休息前的进度继续执行,把shareVar的值一直加到10,由于此刻shareVar的值不为0,

  所以t1将输出此刻shareVar的值,然后再调用notify()方法,由于此刻已经没有等待锁标志的线程,所以此调用语句不起任何作用。

  这个程序简单的示范了wait(),notify()的用法,读者还需要在实践中继续摸索。

  七:关于线程的补充

  编写一个具有多线程能力的程序可以继承Thread类,也可以实现Runnable接口。在这两个方法中如何选择呢?从面向对象的角度考虑,

  作者建议你实现Runnable接口。有时你也必须实现Runnable接口,例如当你编写具有多线程能力的小应用程序的时候。

  线程的调度:NewRunningRunnableOtherwiseBlockedDeadBlockedinobject`sit()

  poolBlockedinobject`slockpoolnotify()Schedulercompletesrun()start()

  sleep()orjoin()sleep()timeoutorthreadjoin()sorinterupt()

  Lockavailablesynchronized()Threadstates

  terupt()一个Thread对象在它的生命周期中会处于各种不同的状态,上图形象地说明了这点。wain

  调用start()方法使线程处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。

  实际上,程序中的多个线程并不是同时执行的。除非线程正在真正的多CPU计算机系统上执行,否则线程使用单CPU必须轮流执行。但是,由于这发生的很快,

  我们常常认为这些线程是同时执行的。

  JAVA运行时系统的计划调度程序是抢占性的。如果计划调度程序正在运行一个线程并且来了另一个优先级更高的线程,

  那么当前正在执行的线程就被暂时终止而让更高优先级的线程执行。

责编:豆豆技术应用

正在加载评论...