首页 > 编程语言 > 详细

多线程

时间:2021-07-20 19:28:06      阅读:31      评论:0      收藏:0      [点我收藏+]

线程通信

wait和notify机制

  • wait()使当前执行wait()方法的线程等待。
public class Test1 {
    public static void main(String[] args) {
        String s=new String("");
        try {
            s.wait();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

报错:
技术分享图片
必须在同步方法或同步块中调用wait()/notify()方法
给对象加锁:

public class Test2 {
    public static void main(String[] args) {
        String s=new String("");
        System.out.println("syn上面");
        synchronized (s){
            System.out.println("syn第一行!");
            try {
                s.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("wait下面的代码!");
        }
    }
}

由于线程没有收到通知,调用wait()方法后,会陷入无限等待中,直到收到通知
技术分享图片

  • notify()向wait状态的线程发送通知,使其取消等待。

多线程

原文:https://www.cnblogs.com/crusadesky/p/15036266.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!