关于线程问题。我是菜鸟,求大神在线解答

chlb-icoc-cc 2014-05-15 04:50:40
一个共享资源,两个同步线程。当一个线程获得资源后,执行代码写入this.suspend();为什么另一个线程还可以获得资源并执行呢?
我是菜鸟,求大神在线解答疑问
suspend() 方法按理不会释放资源的呀
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
snake4311 2014-05-16
  • 打赏
  • 举报
回复
xiaoduan95 2014-05-16
  • 打赏
  • 举报
回复
跟帖。
u012282088 2014-05-16
  • 打赏
  • 举报
回复
刚学到线程,学习了
chlb-icoc-cc 2014-05-15
  • 打赏
  • 举报
回复

public class ThreadValue {
        //需要共享的资源
    public static Integer count = 0;//改之前是Integer
}
chlb-icoc-cc 2014-05-15
  • 打赏
  • 举报
回复
引用 5 楼 oh_Maxy 的回复:
[quote=引用 1 楼 cheng19900917 的回复:] 我的问题已得到解决。。。散分啦。。。 跟帖就有得分。。。。。。。。。。。。。。。。先跟得高分
你的问题出在哪里呢?分享下呗[/quote]

public class ThreadValue {
        //需要共享的资源
	public static int count = 0;
}

//另一个线程的同步块代码
synchronized(ThreadValue.count){//事实上问题就出现在这里了
	ThreadValue.count++;
}

/*********************解决方法***********************************/
改为这样就可以了synchronized(ThreadValue.class)
为什么呢?原因就是ThreadValue.count++;后,此时的count已经被重新创建了,就是说++后的ThreadValue.count已经是另外一个新对象了,因此synchronized(ThreadValue.count)不能达到同步资源count的效果。
oh_Maxy 2014-05-15
  • 打赏
  • 举报
回复
引用 1 楼 cheng19900917 的回复:
我的问题已得到解决。。。散分啦。。。 跟帖就有得分。。。。。。。。。。。。。。。。先跟得高分
你的问题出在哪里呢?分享下呗
打杂家的 2014-05-15
  • 打赏
  • 举报
回复
那必须抢占一下啊
rockets311 2014-05-15
  • 打赏
  • 举报
回复
Kenzson 2014-05-15
  • 打赏
  • 举报
回复
来了啊
chlb-icoc-cc 2014-05-15
  • 打赏
  • 举报
回复
我的问题已得到解决。。。散分啦。。。 跟帖就有得分。。。。。。。。。。。。。。。。先跟得高分

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧