1.锁就是同步器吗 2.同步器和同步有什么关系?
来源:4-6 遭遇面试官深度问synchronized的本质

慕后端2248651
2021-03-19
1.锁就是同步器吗 2.同步器和同步有什么关系?
写回答
2回答
-
// 绝对的同步(sequencial synchronous) i++; i++; // 部分同步(partial synchronous) // 多个i++肯定有先后关系(存在同步关系),虽然我不知道是什么——姑且称之为排了队,不知道顺序 new Thread(() -> { lock(); i++; unlock() }); // 不同步 // 多个i++没有顺序关系,完全无法估计后果 new Thread(() -> { i++ })
10 -
求老仙
2021-03-19
同步器是用来同步的。 什么是同步,简单说,同步就是有序。同步有级别,最高级别的是线性一致——在任何历史时刻你都知道发生了什么。
锁是一种同步器。锁住的临界区,多个线程来执行,排队进入,排队出去,进入有序状态。 这个是部分一致,因为谁先谁后,你不好判断。比如两个i++,究竟谁先执行,不好说。但是他们基本上,同步了,虽然不知道先后,但是不会并行(有序)。
CountDownLatch也是同步器,它设定了一个同步点。同步点之前的事情,和同步点之后的事情,会有序。同步点之前都走完,才走同步点之后的事情。 阻塞队列也同步器,它规定了元素入队、出队的顺序。
30
相似问题