java notify怎么用_java 如何使用notify()
发布日期:2021-06-24 16:15:46 浏览次数:4 分类:技术文章

本文共 800 字,大约阅读时间需要 2 分钟。

class ThreadA

{

public static void main(String[] args)

{

ThreadB b=new ThreadB();

b.start();

System.out.println("b is start....");

synchronized(b)//括号里的b是什么意思,起什么作用?

{

try

{

System.out.println("Waiting for b to complete...");

b.wait();//这一句是什么意思,究竟让谁wait?

System.out.println("Completed.Now back to main thread");

}catch (InterruptedException e){}

}

System.out.println("Total is :"+b.total);

}

}

class ThreadB extends Thread

{

int total;

public void run()

{

synchronized(this)

{

System.out.println("ThreadB is running..");

for (int i=0;i<100;i++ )

{

total +=i;

System.out.println("total is "+total);

}

notify();

}

}

}

synchronized(b){...};的意思是定义一个同步块,使用b作为资源锁。b.wait();的意思是临时释放锁,并阻塞当前线程,好让其他使用同一把锁的线程有机会执行,在这里要用同一把锁的就是b线程本身.这个线程在执行到一定地方后用notify()通知wait的线程,锁已经用完, 待notify()所在的同步块运行完之后,wait所在的线程就可以继续执行.

转载地址:https://blog.csdn.net/weixin_33758343/article/details/114970066 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java加载指定文件为当前文本,java:如何使用bufferedreader读取特定的行
下一篇:java输出狗的各类信息_第九章Java输入输出操作

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月07日 05时17分54秒