标签:

标题已经说明,子线程wai()时候默认的锁不是同步代码块的锁,因此wai时候显示的指明锁,现在解释看code:

public class Test {

//staticboolean flag=true;

public static void main(String[] args) throws InterruptedException {

Zp z=new Zp();

Thread st=new Thread(z);

st.start();

for(int x=0;x<100000;x++)

{

if(x%5000==0)

{

//flag=false;

Thread.sleep(3000);

synchronized (Test.class) //这里必须判断同步,否则当子线程没有放弃锁的时候,就执行下面会出现异常

{

Test.class.notify();

}

}

}

}

static class Zp implements Runnable

{

@Override

public void run() {

synchronized (Test.class) {

while(true)

{

for(int x=0;x<10;x++)

{

System.out.println("haha...");

}

try {

Test.class.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

}

标签:

java 线程 wait 一定要同步_java中使用wait就得使用同步锁,而且2个线程必须都使用同步代码块,否则就会异常...相关推荐

  1. java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥

    JAVA中线程在什么时候需要同步和互斥 关注:265  答案:6  mip版 解决时间 2021-01-27 08:10 提问者时光易老 2021-01-27 03:32 JAVA中线程在什么时候需要 ...

  2. java中什么是同步_Java中,“synchronized”(同步)是什么意思?什么时候应该用synchronized? - Break易站...

    synchronized关键字的意义是什么? 什么时候应该是方法synchronized? 这是什么编程和逻辑? Java中,"synchronized"(同步)是什么意思?什么时 ...

  3. java类同步_Java中方法,对象,类的同步

    关于在多线程环境中使用同步,我需要一些澄清.我在下面有一个小例子类.但我实际上发现很难做出以下内容如何工作的测试用例;我想要测试用例的原因是要了解同步如何处理这些不同的场景 >如果一个线程调用S ...

  4. 在java中创建线程有几种办法_Java中创建线程的几种主流方式

    继承Thread类 继承Thread类,并重写它的run方法,就可以创建一个线程了,当然线程是如何真正被启动,可以参考我之前的 为什么start方法才能启动线程,而run不行? class Think ...

  5. JAVA中初始化线程的两种方法_java中最简单的方式新起一个线程

    启动一个线程 在一个方法中启动一个线程,有两种方法 第一种是让类实现Runable接口,这样的话编译器就会提示你实现里面的未实现的方法(就是run方法) 第二种是,现在方法中new一个线程,然后直接调 ...

  6. java怎样将日期本土化_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  7. Java如何解决mysql读写延迟_java中延迟任务的处理方式

    1.利用延迟队列 延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到-- 应用场景比较多, ...

  8. java斐波那切数列_Java中的递归方法

    递归算法 1.递归算法 递归在计算机科学中也称为递归算法.一些问题在分解的时候会有这样的现象:解决该问题的过程是由重复的相似子过程组成,类似这样的问题我们都可以通过递归算法进行解决.在计算机语言中,递 ...

  9. java finally什么时候不执行_Java 中的 finally 一定会被执行吗?

    不要因害怕冒险而踟蹰不前,而要为创造伟大提供可能. 一.前言 因为这次面试有问到一些同学finally的问题,发现自己这块好像有点记不太清楚了,有的点可能还给人家说错了,一度弄得场面有些尴尬.所以说这 ...

最新文章

  1. SHELL-命令解释程序
  2. MySQL开启federated引擎实现数据库表映射
  3. sql server set赋值和select 赋值的区别以及使用方法
  4. 有一只经过训练的蜜蜂……
  5. Apache Shiro源码解读之SecurityManager的创建
  6. 输变电设备物联网传感器数据通信规约_输变电设备“智慧物联”提升电网质效...
  7. linux-jmeter负载机配置记录
  8. 【转载】用备份进行Active Directory的灾难重建:Active Directory系列之三
  9. 基于php网络小说,五部小说点击破亿,盘点网络文学白金作家我吃西红柿!
  10. Android图片加载那些事(一)-实现加载手机中的所有图片
  11. TCP和UDP区别和优缺点
  12. ArcGIS批量按要素裁剪(应用模型)
  13. 路由器和交换机的工作原理
  14. 怎样用python画玫瑰花的简笔画_玫瑰花简笔画素描作品图片
  15. 字节跳动员工晒出税后工资,网友:怀疑你是日薪
  16. Unity高质量场景打光参考资料
  17. 8年京东大数据架构师推荐的大数据开发学习路线
  18. 【Ubuntu 20.04 LTS】如何安装软件详细讲解
  19. java 获取 海康 视频流_海康网络摄像机调用SDK解码Java版
  20. vc使用默认的浏览器打开网页代码

热门文章

  1. BYOD时代,如何在企业中保护移动消息传递?
  2. vue实现两重列表集合,点击显示,点击隐藏的折叠效果,(默认显示集合最新一条数据,点击展开,显示集合所有数据)...
  3. JavaScript--函数
  4. Android1 按钮
  5. python 输出彩色文字
  6. 解决AutoCAD2010安装完毕后闪退问题
  7. Android源码学习之如何使用eclipse+NDK
  8. 分享最新40款免费的 WordPress 主题(上篇)
  9. 历史上今天和成语辞典 进入美国区教育类 what's hot
  10. IT-标准化-系列-15.在VPC 2007中构建虚拟网络