线程记录(2)

1.线程状态

NEW : 分配内存地址,创建线程

RUNNABLE:(就绪/运行)调用start()之后(/没有调度CPU调度)

BLOCKED:还未拿到锁,等待、被阻塞(拿到synchronized失败状态)

WAITNG:挂起线程、wait(),需要手动唤醒

TIMED_WATING:睡眠,sleep()、join();会被自动唤醒,无需手动唤醒

TERMINATED:run方法执行完毕,线程生命周期结束

线程记录(2)_第1张图片

 2.Lock锁和ThreadLock锁

lock锁:

1.java中的锁接口。lock锁手动实现锁,使用之前需要先获取锁,最后需要释放锁。

2.lock接口的实现允许锁在不同的作用范围内获取和释放,允许以任何顺序和获取和释放多个锁。

3.实现类ReentrantLock (重入锁:当前线程获取到锁后,尝试再次获取时可以直接拿到)和ReentrantReadWriteLock(读写锁),一般情况重入锁即可。

ThreadLock锁:

每一个线程中都拥有该对象的一个副本。

你可能感兴趣的:(java,jvm,开发语言)