PDF 课件和源代码下载地址:
https://github.com/geektime-geekbang/LetsJava
作者回复:
是这样的,synchronized不保证(强调不保证)是公平锁。但是并不代表实际在某个具体程序的某次运行时,他的表现是和公平锁一样的。
只要有不公平的可能,就不能说是公平锁。要能百分之百保证在任何情况下都是公平锁,代价很高。synchronized是随缘公平,不保证公平。
作者回复:
第一个线程在sleep的时候,别的线程也在sleep呀
作者回复: sleep不会失去synchronized锁