qwe5b123
莫忘i
采纳率60%
2018-09-20 07:37

新手求指点呀,多线程同步问题,上一次传的图片有问题

已采纳

上一个问题传的图片有点错误,再重新传一下
下面是完整版的代码图片说明图片说明
下面是上面代码的运行结果
图片说明
下面是另一段代码唯一不同就是休眠位置不同图片说明
下面是第二段代码的运行结果图片说明
我想问下第二段代码运行结果是正确的吗/?,为什么两次运行结果不一样?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_40634961 qq_40634961 3年前

    正不正确主要就看操作的共享数据有没有问题,如果都是稳定的没有相同的就是正确的线程锁,sleep只是让当前线程睡眠了,不会释放掉锁,如果在拿到了锁
    之后sleep的,那其他线程只能一直等待,如果没拿到锁就sleep的话就跟正常一样,其他的线程会去抢锁

    点赞 评论 复制链接分享
  • JonathanYan JonathanYan 3年前

    sleep只会使当前线程休眠,不会释放锁。代码一由于睡眠的时候锁已经释放,所以被另外两个线程竞争到的概率非常大,而第二个就不一样了。

    点赞 评论 复制链接分享