• 热门专题

java多线程基本概念

作者:lhp--2006  发布日期:2011-09-23 16:49:06
Tag标签:java  多线程  基本概念  
  • java多线程
    1,run(),start()
       run()方法的访问控制符号必须是public的,返回值void
       start()调用start()方法使线程处于可运行状态,这意味着它可以由JVM调度并执行。这并

    不意味着线程就会立即运行
    2,sleep(),yield()
      sleep 方法可以使低优先级的线程得打执行的机会,
      同样也可以让高的优先级有执行的机会。
      yield()方法只能使同优先级的线程有执行的机会。
    3,wait(),notify().notify()都是由java.lang.Object类提供。
       三个方法用来协调多个线程对共享数据的存取,所以必须在synchronized语句块内使用这个

    三个方法。
       wait(),将当前线程处于休息状态,同时释放锁标志。
       notify(),唤醒线程。

    ------------------------------------------------------------------
    当线程执行了对一个特定对象的wait()调用时,那个线程被放到与那个对象相关的等待池中。

    此外,调用wait()的线程自动释放对象的锁标志。

      对一个特定对象执行notify()调用时,将从对象的等待池中移走一个任意的线程,并放到锁

    标志等待池中,那里的线程一直在等待,直到可以获得对象的锁标志。notifyAll()方法将从对

    象等待池中移走所有等待那个对象的线程并放到锁标志等待池中。只有锁标志等待池中的线程

    能获取对象的锁标志,锁标志允许线程从上次因调用wait()而中断的地方开始继续运行。
    注意,不管是否有线程在等待,都可以调用notify()。如果对一个对象调用notify()方法,而在这个对象的锁标志等待池中并没有线程,那么notify()调用将不起任何作用。

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规