美文网首页
java线程间通信(wait、notfiy)

java线程间通信(wait、notfiy)

作者: 辰若寒 | 来源:发表于2018-02-24 15:58 被阅读41次

Thread1中使用wait语句,等待Thread2执行完notify之后,并将synchronized语句块执行完,释放锁之后,Thread1得到重新执行的机会,接着执行下去。

public class Thread1 extends Thread {

    private Object lock;

    public Thread1(Object lock) {

        super();

        this.lock = lock;

    }

    @Override

    public void run() {

        try {

        synchronized (lock) {

        System.out.println("wait start=" + System.currentTimeMillis());

        lock.wait();

        System.out.println("wait end=" + System.currentTimeMillis());

        }

        } catch (InterruptedException e){

        e.printStackTrace();

        }

    }

}

public class Thread2 extends Thread {

    private Object lock;

    public Thread2(Object lock) {

        super();

        this.lock = lock;

    }

    @Override

    public void run() {

        try {

        synchronized (lock) {

        System.out.println("notify start=" + System.currentTimeMillis());

        lock.notify();

        System.out.println("notify end=" + System.currentTimeMillis());

        }

        } catch (InterruptedException e){

        e.printStackTrace();

        }

    }

}

public class Test {

public static void main(String[] args) {

try {

Object lock = new Object();

Thread1 t1 = new Thread1(lock);

t1.start();

Thread2 t2 = new Thread2(lock);

t2.start();

} catch(InterruptedException e) {

e.printStackTrace();

}

}

}

打印结果:

wait start=……

notify start=……

notify end=……

wait end=……

相关文章

  • java线程间通信(wait、notfiy)

    Thread1中使用wait语句,等待Thread2执行完notify之后,并将synchronized语句块执行...

  • Java 多线程学习5 - 线程间通信

    利用Object的notify和wait进行线程间通信 Java Object中有一组wait,notify,no...

  • java代码中使用多线程wait/notify18

    java的wait/notify的通知机制可以用来实现线程间通信。wait表示线程的等待,调用该方法会导致线程阻塞...

  • Java wait和notify/notifyAll的使用方法

    java的wait/notify的通知机制可以用来实现线程间通信。wait表示线程的等待,调用该方法会导致线程阻塞...

  • 多线程基础(十):LockSupport源码及其使用

    [toc] 在前面学习过java线程间通信的几种方式,分别是synchronized结合wait/notify。以...

  • 4. Java线程通讯

    Busy Wait 一个线程间相互通信的方法是使用线程间共享对象的一个变量进行通信。 线程B等待线程A将hasDa...

  • Java多线程通信lock和wait

    在Java多线程中有一对配合使用过的两个方法,来实现线程间通信的功能--lock和wait, 由于这个需要获得锁,...

  • 线程通信

    线程间通信机制: 1、共享内存 2、消息传递 JAVA用的是1模型 notify 与wait 都是公用一个锁 sy...

  • 线程间通信

    线程间通信 等待唤醒机制 等待唤醒机制就是用于解决线程间通信的问题的,使用到的3个方法的含义如下:wait():告...

  • java 多线程通信

    线程间的通信又称为进程内的通信 wait和notify是Object中的方法 wait(0) 0代表永不超时, O...

网友评论

      本文标题:java线程间通信(wait、notfiy)

      本文链接:https://www.haomeiwen.com/subject/qboqxftx.html