Java中线程出现Exception in thread "Thread-0" java.lang.IllegalMonitorStateException异常 解决方法
代码
package thread;
public class TestChongNeng {
    public static void main(String[] args) {
        Thread t1 = new Thread() {
            public void run() {
                while (true) {
                    for(int i=1;i<=3;i++) {
                        System.out.printf("波动拳第%d发 %n",i);
                    }
                    try {
                        //synchronized (this) {
                            wait(2000);
                        //}
                    } catch (InterruptedException e1) {
                        e1.printStackTrace();
                    }
                    System.out.println("开始为时2s的充能");
                }
            }
        };
        t1.start();
    }
}
报错信息
Exception in thread "Thread-0" java.lang.IllegalMonitorStateException
	at java.lang.Object.wait(Native Method)
	at thread.TestChongNeng$1.run(TestChongNeng.java:13)
解决方法
在线线程中调用wait方法的时候 要用synchronized锁住对象,确保代码段不会被多个线程调用
参考文章:
https://blog.csdn.net/zhouxiaoyun0228/article/details/7757313/
Java中线程出现Exception in thread "Thread-0" java.lang.IllegalMonitorStateException异常 解决方法的更多相关文章
- Tomcat部署java项目java.lang.OutOfMemoryError异常解决方法
		
java.lang.OutOfMemoryError异常解决方法 Window系统环境下,在catalina.bat文件第一行添加以下内容 set JAVA_OPTS=-Xms512m -Xmx512 ...
 - Java中线程同步的理解 - 其实应该叫做Java线程排队
		
Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...
 - 问题:eclipse中线程编程编译报错,undefined reference to 'pthread_create'的解决方法(已解决)
		
问题描述: 在Ubuntu系统中,使用eclipse CDT集成开发环境编写pthread程序,编译时,pthread_create不通过,报错信息是: undefined reference to ...
 - java.lang.OutOfMemoryError异常解决方法
		
原因:常见的有以下几种:1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据:2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收:3.代码中存在死循环或循环产生过多重复的对象实体:4 ...
 - Hibernate查询出现java.lang.IllegalArgumentException异常解决方法
		
Hibernate查询出现java.lang.IllegalArgumentException. 异常信息如下:java.lang.IllegalArgumentException at ...
 - Java中线程的使用 (2)-多线程、线程优先级、线程睡眠、让步、阻塞
		
Java中线程的使用 (2)-多线程.线程优先级.线程睡眠.让步.阻塞 (一)多线程使用方法 说明:创建每个新的线程,一定要记得启动每个新的线程(调用.start()方法) class Xc3 ext ...
 - Java中线程池,你真的会用吗?
		
在<深入源码分析Java线程池的实现原理>这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理. 在文中有这样一段描述: 可以通过Executors静态工厂构建线程池,但一般不建 ...
 - 沉淀再出发:java中线程池解析
		
沉淀再出发:java中线程池解析 一.前言 在多线程执行的环境之中,如果线程执行的时间短但是启动的线程又非常多,线程运转的时间基本上浪费在了创建和销毁上面,因此有没有一种方式能够让一个线程执行完自己的 ...
 - Java中线程和线程池
		
Java中开启多线程的三种方式 1.通过继承Thread实现 public class ThreadDemo extends Thread{ public void run(){ System.out ...
 
随机推荐
- 莫队学习笔记(未完成QAQ
			
似乎之前讲评vjudge上的这题的时候提到过?但是并没有落实(...我发现我还有好多好多没落实?vjudge上的题目还没搞,然后之前考试的题目也都还没总结?天哪我哭了QAQ 然后这三道题我都是通过一道 ...
 - 缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)分析
			
缓存算法是指令序列,用于决定缓存系统中哪些数据应该被删去. 常见类型包括LFU.LRU.ARC.FIFO.MRU. 一.最不经常使用算法(Least Frequently Used-LFU): 它是基 ...
 - OC导航栏跳转指定界面
			
方法一: [self.navigationController popToViewController:[self.navigationController.viewControllers objec ...
 - Vue 命令
			
vue是数据渲染使用:axios,官网:https://www.kancloud.cn/yunye/axios/234845 || https://www.npmjs.com/search? ...
 - 扩展的friend语法
			
Java中没有定义friend. friend用于声明类的友元,可以无视类中成员的属性.无论成员3p中的哪一种,友元类或友元函数都可以访问,破坏了封装性,此关键字备受争议.专家会建议程序员使用get/ ...
 - SpringBoot打成的jar包发布,shell关闭之后一直在服务器运行
			
1:可以编写shell脚本, 切换到执行的jar包目录,然后使用nohup 让改命令在服务器一直运行 #!/bin/bash cd /srv/ftp/public nohup java -jar l ...
 - [py][mx]django邮箱注册的验证码部分-django-simple-captcha库使用
			
邮箱注册-验证码 验证码使用第三方库django-simple-captcha 这个安装图形插件步骤官网有哦 - 1.Install django-simple-captcha via pip: pi ...
 - nodejs+express的(前端跨域请求)
			
1.后端代码 var dp = 456; var back = 'callback(\{\dp\ : \ ' + dp + '\ }\)'; res.send(back); 2.前端代码 <sc ...
 - CNN实现垃圾邮件分类(行大小不一致要补全)
			
以下是利用卷积神经网络对某一个句子的处理结构图 我们从上图可知,将一句话转化成一个矩阵.我们看到该句话有6个单词和一个标点符号,所以我们可以将该矩阵设置为7行,对于列的话每个单词可以用什么样的数值表示 ...
 - C#可扩展数组转变为String[]数组
			
简单备忘: 由于需要将数据最终以逗号隔开来拼接,因而写了下面的处理方法. public void GetJoinString() { ArrayList arr = new ArrayList(); ...