package thread; public class TestThree { /** * 线程属性: * 线程优先级,守护线程,线程组,未捕获异常的处理器 * * * 线程优先级 * public static final int MIN_PRIORITY = 1; //最小优先级 * public static final int NORM_PRIORITY = 5; //默认优先级 * public static final int MAX_PRIORITY = 10;//最大优先级 * * public static native void yield(); 当前线程让步,如果其他线程与此线程有同样的优先级,这些线程将会被调度 * * * 守护线程 * public final void setDaemon(boolean arg0) {} * 在线程启动之前设置为守护线程,为其他线程提供服务,当只剩下守护线程的时候,虚拟机就会退出。 * 守护线程不应该访问固有资源,如,文件,数据库。它将会在任何时候中断,甚至在一个操作的中间中断。 * * * 替换 处理器可以使用日志 API 发送未捕获异常的报告到日志文件 * * * //为所有的线程设置一个异常处理器 * public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler arg) {} * * * //设置获取获取未捕获的异常处理器,则将线程组对象作为处理器 * public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler() {} * * * * //当一个线程因未捕获异常而终止, 按规定要将客户报告记录到日志中。 * // 参数:t 由于未捕获异常而终止的线程 e未捕获的异常对象 * void UncaughtException(Thread t, Throwable e) * * * */ public static void main(String[] args) { Thread t1 = Thread.currentThread(); t1.yield(); t1.setDaemon(true); t1.getUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(Thread.getDefaultUncaughtExceptionHandler()); } }