线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个 线程,也就是程序本身。Java中的线程有四种状态分别是:就绪,运行、挂起、结束。
简述synchronized和java.util.concurrent.locks.Lock的异同 ?
主要相同点:Lock能完成synchronized所实现的所有功能。
主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。