请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

1.锁就是同步器吗 2.同步器和同步有什么关系?

正在回答

2回答

// 绝对的同步(sequencial synchronous)
i++;
i++;

// 部分同步(partial synchronous)
// 多个i++肯定有先后关系(存在同步关系),虽然我不知道是什么——姑且称之为排了队,不知道顺序
new Thread(() -> {
  lock();
  i++;
  unlock()
});

// 不同步
// 多个i++没有顺序关系,完全无法估计后果
new Thread(() -> {
  i++
})


1 回复 有任何疑惑可以回复我~
求老仙 2021-03-19 09:07:16

同步器是用来同步的。 什么是同步,简单说,同步就是有序。同步有级别,最高级别的是线性一致——在任何历史时刻你都知道发生了什么。

锁是一种同步器。锁住的临界区,多个线程来执行,排队进入,排队出去,进入有序状态。 这个是部分一致,因为谁先谁后,你不好判断。比如两个i++,究竟谁先执行,不好说。但是他们基本上,同步了,虽然不知道先后,但是不会并行(有序)。

CountDownLatch也是同步器,它设定了一个同步点。同步点之前的事情,和同步点之后的事情,会有序。同步点之前都走完,才走同步点之后的事情。 阻塞队列也同步器,它规定了元素入队、出队的顺序。 


3 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号