求各位大虾帮忙解决线程问题!!!
时间:2011-10-13
来源:互联网
public class Demo5 {
public static void main(String[] args) {
D5 d1 = new D5();
D5 d2 = new D5();
D5 d3 = new D5();
d1.start();
d2.start();
d3.start();
}}
class D5 extends Thread {
private static int i=100;
public void run() {
while(true) {
synchronized (this) {
if(i>0) {
try {Thread.sleep(10);}catch(InterruptedException e){}
System.out.println("sales :" + i);
i--;
}
}
}
}
}
为什么我用了synchronized关键字锁住了,却还是没有解决同步问题?
public static void main(String[] args) {
D5 d1 = new D5();
D5 d2 = new D5();
D5 d3 = new D5();
d1.start();
d2.start();
d3.start();
}}
class D5 extends Thread {
private static int i=100;
public void run() {
while(true) {
synchronized (this) {
if(i>0) {
try {Thread.sleep(10);}catch(InterruptedException e){}
System.out.println("sales :" + i);
i--;
}
}
}
}
}
为什么我用了synchronized关键字锁住了,却还是没有解决同步问题?
作者: 920123164 发布时间: 2011-10-13
synchronized (this) {
你这句有问题,因为this只是表示当前对像实例,你的main方法中生成了3个不同的实例,所以每次lock的对像不一样。因此你可以使用 this.getclass()来lock实例类就可以了。
你这句有问题,因为this只是表示当前对像实例,你的main方法中生成了3个不同的实例,所以每次lock的对像不一样。因此你可以使用 this.getclass()来lock实例类就可以了。
作者: shamdeng 发布时间: 2011-10-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28