[1] 为什么要加锁之临界区 多个线程访问共享资源时,在多个线程对共享资源读写操作时发生指令交错,就会出现问题。一段代码块内如果存在对共享资源的多线程读写操作,称这段代码块为临界区。 多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件。 [2] 实现一个锁需要考虑哪些方面? 实现一个锁,主要需要考虑2个问题 如何线程安全的修改锁状态位?得不到锁的线程,如何排队?