Java 并发 线程属性
@author ixenos
线程优先级
1.每当线程调度器有机会选择新线程时,首先选择具有较高优先级的线程
2.默认情况下,一个线程继承它的父线程的优先级
当在一个运行的线程A里,创建另一个线程B的时候,那么A是父线程,B是子线程。
当在一个运行的线程A里,创建线程B,然后又创建了线程C,这时候虽然B比C创建早,可是B并不是C的父线程,而A是B和C的父线程。
3.线程的优先级高度依赖于系统,当虚拟机依赖于宿主机平台的线程实现机制时,Java线程的优先级被映射到宿主机平台的优先级上!优先级个数也许更多也许更少(Java有10个优先级)
4.如果有几个高优先级的线程没有进入非活动状态,低优先级的线程可能永远也不能执行!因为每当调度器决定运行一个新线程时,首先会在具有高优先级的线程中进行选择,这样就可能会使低优先级的线程完全饿死。
守护线程
1.守护线程的唯一用途是为其他线程提供服务(计时线程就是一个例子)
2.当只剩下守护线程时,虚拟机就退出了
3.守护线程应该永远不去访问固有资源(文件、数据库),因为它会在任何时候发生中断
4.调用 t.setDaemon(true); 将线程转换为守护线程
未捕获异常处理器
1.线程的run方法不能抛出任何被检测的异常,但是不被检测的异常会导致线程终止!但我们不需要任何catch子句去处理异常,因为在线程死亡之前,异常被传递到一个用于未捕获异常的处理器
2.(未完待续 Thinking in Java)