您当前的位置: 首页 >  Java

java.lang.IllegalMonitorStateException

发布时间:2017-09-22 12:34:00 ,浏览量:0

java.lang.IllegalMonitorStateException

at java.lang.Object.wait(Native Method)

at com.……

错误代码:

public static void main(String args[]) {
		try {

			// 确定服务地址
			URL url = new URL(
					"http://192.168.1.168:8080/smart/save.do?token=00124B0006234CF50102");
			URLConnection conn = url.openConnection();
			conn.setDoOutput(true);
			OutputStream out = conn.getOutputStream();
			InputStream in = conn.getInputStream();

			Object obj = new Object();
			
			int n = -1;
			byte[] b = new byte[1024];
			// 从服务端读取数据并打印
			while (true) {
				if ((n = in.read(b)) != -1) {
					String s = new String(b, 0, n, "UTF-8");
					System.out.println(s);
				}
				String content = UUID.randomUUID().toString();
				out.write(content.getBytes());
				out.flush();
				
				obj.wait(3000);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
错误发生在语句:obj.wait(3000);

为什么会发生这个错误呢?

因为不存在锁,不存在对象争用的情况吧。

解决方法

synchronized (obj) {
	obj.wait(3000);
}
加个同步块就可以了。
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    110086博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0629s