查看线程名是很简单的,调用Thread.currentThread().getName()
便可。java
public class MyThreadDemo { public static void main(String[] args) { MyThread myThread = new MyThread(); //带参构造方法给线程起名字 Thread thread1 = new Thread(myThread, "关注公众号Java3y"); Thread thread2 = new Thread(myThread, "qq群:742919422"); thread1.start(); thread2.start(); // 打印当前线程的名字 System.out.println(Thread.currentThread().getName()); } }

守护线程是为其余线程服务的数据库
守护线程有一个特色:安全
使用线程的时候要注意的地方spa
setDaemon(boolean on)

线程优先级高仅仅表示线程获取的CPU时间片的概率高,但这不是一个肯定的因素!操作系统
线程的优先级是高度依赖于操做系统的,Windows和Linux就有所区别(Linux下优先级可能就被忽略了)~线程
能够看到的是,Java提供的优先级默认是5,最低是1,最高是10:设计
线程有3个基本状态:执行、就绪、阻塞3d
Thread上不少的方法都是用来切换线程的状态的,code
调用sleep方法会进入计时等待状态,等时间到了,进入的是就绪状态而并不是是运行状态!(注意sleep方法不会释放锁)对象
调用yield方法会先让别的线程执行,可是不确保真正让出
意思是:我有空,能够的话,让大家先执行
调用join方法,会等待该线程执行完毕后才执行别的线程~
线程中断在以前的版本有stop方法,可是被设置过期了。如今已经没有强制线程终止的方法了!
因为stop方法可让一个线程A终止掉另外一个线程B
总而言之,Stop方法太暴力了,不安全,因此被设置过期了。
咱们通常使用的是interrupt来请求终止线程~
Thread t1 = new Thread( new Runnable(){ public void run(){ // 若未发生中断,就正常执行任务 while(!Thread.currentThread.isInterrupted()){ // 正常任务代码…… } // 中断的处理代码…… doSomething(); } } ).start();
再次说明:调用interrupt()并非要真正终止掉当前线程,仅仅是设置了一个中断标志。这个中断标志能够给咱们用来判断何时该干什么活!何时中断由咱们本身来决定,这样就能够安全地终止线程了!
interrupt线程中断还有另外两个方法(检查该线程是否被中断):[检查中断是使用interrupt的用途之一]