- 线程的方法
-
成员方法(补)
方法名 说明 yield() 静态方法,释放当前线程cpu的执行权 join() 等待这个线程结束 isAlive() 判断这个线程是否存活 -
优先级
- 方法
方法名 说明 getPriority() 获取线程的优先级. setPriority(int n) 设置线程的优先级,范围1到10. - 常量
MAX_PRIORITY(10) 最高优先级
MIN_PRIORITY(1) 最低优先级
NORM_PRIORITY(5) 普通优先级
-
- 线程的生存周期
- 图片
- 种类
NEW,RUNNABLE,BLOCKED,WATING,TIMED_WATING,TERMINATED.
- 图片
- 解决线程安全问题
- 方法1(同步代码块)
-
synchronized(同步监视器) {
//需要被同步的代码
} -
注意:
- 需要被同步的代码,即操作共享数据的代码.
- 共享数据:多个线程需要操作的数据.
- synchronized(){}的功能:当一个线程进入同步代码块时,其他线程必须等待.
- 同步监视器:
①也叫锁,哪个线程拥有锁,那个线程可以执行synchronized包裹的代码.
②任何一个类的对象都可以当锁,但是多个线程必须公用一个同步监视器.
-
一般来说同步代码块的锁:
实现线程的方法 同步监视器 实现Runnable接口 this 继承Thread类 子类.class ps:其实只要保证作同步监视器的对象在各个线程中是唯一的,就可以当同步监视器.但是一般用以上情况.而且有时不能用,这时候具体问题具体分析.
-
- 方法2(同步方法)
-
用synchronized修饰方法.
-
注意:
用synchronized修饰的方法 默认同步监视器 非静态方法 this 静态方法 当前类.class ps:具体问题具体分析
-
- 方法1(同步代码块)