1:守护线程,thread.setDaemon(true);
定义:守护线程--也称“服务线程”,在没有用户线程可服务时会自动离开。优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。
设置:通过setDaemon(true)来设置线程为“守护线程”;将一个用户线程设置为守护线程的方式是在 线程对象创建 之前 用线程对象的setDaemon方法。
public static void main(String[] args) {
try {MyThread thread = new MyThread();
thread.setDaemon(true);
thread.start();
Thread.sleep(5000);
System.out.println("我离开thread对象也不再打印了,也就是停止了!");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2:获取线程的名称和id
public static void main(String[] args) {
Thread runThread = Thread.currentThread();
System.out.println(runThread.getName() + " " + runThread.getId());
}
3:判断线程是否存活
System.out.println("Thread.currentThread().isAlive()="
+ Thread.currentThread().isAlive());
4:
线程对Thread.interrupt
Thread.suspend很容易死锁。如果目标线程挂起来,他将给监听器上锁用以保护重要的系统资源,其他线程将不能访问该资源直到目标线程恢复工作。如果线程在恢复一个企图给监听器加锁的线程前调用了resume方法,则导致死锁。这种死锁称之为冰冻过程。详细请看https://blog.csdn.net/loongshawn/article/details/53034176“”
interrupted只是给线程添加个停止标记,并未停止线程
5:能停止线程的方法:异常法
6:暂停线程和恢复线程的方法
7:suspend和resume的缺点不同步
8:线程的优先级:线程的优先级分为1到10,如果不是则抛出异常
9线程的优先级
10:守护线程: