目录
【5】为什么调用start()方法时会执行run()方法,为什么不能直接调用run()方法?
【1】锁机制
互斥和同步是一种最常见、最主要的实现并发正确性(相对线程安全)的保障手段。
- 同步:指的是在多个线程并发访问共享数据时,保证共享数据在同一个时刻只能被一个线程使用。
- 互斥:指的是实现同步的一种手段,临界区互斥量和信号量都是主要的互斥实现方式。
锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。链接
Java中,锁的实现方式有两种:synchronized关键字和并发包中的锁类。synchronized关键字是最基本的一种互斥同步手段(链接)。synchronized可以保证线程竞争共享资源的正确性(多个线程并发访问共享数据时,保证共享数据在同一个时刻只能被一个线程使用)。
【2】线程死锁
死锁:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。