03.线程.txt
UP 返回
1.进程间状态的转化
新建(New) 可运行状态(Runnable) 正在运行(Running) 阻塞(Blocked) 终止(Dead)
线程创建进入New
New调用start后进入Runnable
Runnable获取CPU使用权进入Running,时间片用完后再转回Runnable
Running在其他线程调用join,或者调用wait/sleep,或者有I/O请求处理,则进入Blocked
Blocked等待调用join的线程执行完毕,或者调用notify/notifyAll,或者sleep超时,或者I/O请求完成,进入Runnable
所有状态的线程调用stop后,或者Running执行完毕或者异常终止,则进入Dead(stop方法已废弃)
2.java为线程类提供了10个优先级,用整数1-10表示,超过范围会抛出异常。主线程默认为5
MAX_PRIORITY 最高优先级10
MIN_PRIORITY 最高优先级1
NORM_PRIORITY 最高优先级5
getPriority() 获取线程优先级
setPriority() 设置优先级
优先级与操作系统的实际情况有关,实际执行时不一定会按优先级来,比如start的顺序也会影响到
3.synchronized关键字可以用在成员方法 静态方法 语句块中
public synchronized void saveAccount() {...}
public static synchronized void saveAccount() {... }
synchronized (obj) {...}
DOWN 返回