线程基础---wait(),notify的应用一例

ljw一个好人

ljw一个好人

2016-02-19 19:00

下面图老师小编要跟大家分享线程基础---wait(),notify的应用一例,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

  本例子实现了两个线程,每个线程输出1到100的数字。第一个线程输出1-10,停止,通知第二个线程 输出1-10 第二个线程停止 通知第一个线程 输出11-20 ...实现的要点是在Java中,每个对象都有个对象锁标志(Object lock flag)与之想关联,当一个线程A调用对象的一段synchronized代码时,它首先要获取与这个对象关联的对象锁标志,然后执行相应的代码,执行结束后,把这个对象锁标志返回给对象;因此,在线程A执行synchronized代码期间,假如另一个线程B也要执行同一对象的一段synchronized代码时(不一定与线程A执行的相同),它将要等到线程A执行完后,才能继续....
  
  如何利用wait() notify() notifyAll()?
  
  在synchronized代码被执行期间,线程可以调用对象的wait()方法,释放对象锁标志,进入等待状态,并且可以调用notify()或者notifyAll()方法通知正在等待的其他线程。notify()通知等待队列中的第一个线程,notifyAll()通知的是等待队列中的所有线程。?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
 
package jdeveloper.study;
  /**
   * Title:        Jdeveloper's Java Projdect
   * Description:  n/a
   * Copyright:    Copyright (c) 2001
   * Company:      soho  http://www.ChinaJavaWorld.com
   * @author jdeveloper@21cn.com
   * @version 1.0
   */
  import java.lang.Runnable;
  import java.lang.Thread;
  public class DemoThread implements Runnable{
    public DemoThread() {
           TestThread testthread1 = new TestThread(this,"1");
           TestThread testthread2 = new TestThread(this,"2");
           testthread2.start();
           testthread1.start();
    }
    public static void main(String[] args) {
      DemoThread demoThread1 = new DemoThread();
    }
     public void run(){
          TestThread t = (TestThread) Thread.currentThread();
          try{
            if (!t.getName().equalsIgnoreCase("1")) {
                synchronized(this) {
                    wait();
                }
            }
            while(true){
  
展开更多 50%)
分享

猜你喜欢

线程基础---wait(),notify的应用一例

编程语言 网络编程
线程基础---wait(),notify的应用一例

wait,notify,sleep,join和线程同步问题(续)

编程语言 网络编程
wait,notify,sleep,join和线程同步问题(续)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java多线程之wait(),notify(),notifyAll()的详解分析

编程语言 网络编程
java多线程之wait(),notify(),notifyAll()的详解分析

Word宏命令巧妙应用一例

办公软件
Word宏命令巧妙应用一例

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个理解wait()与notify()的例子

编程语言 网络编程
一个理解wait()与notify()的例子

实现FTP访问一例

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
实现FTP访问一例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java 2中的MVC设计模式

Java 2中的MVC设计模式

如何把word里的文字转换到Excel中

如何把word里的文字转换到Excel中
下拉加载更多内容 ↓