线程学习一下

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:守护线程:


猜你喜欢

转载自blog.csdn.net/qq_41665476/article/details/80973063
今日推荐