1.开启线程的方法
2.currentThread()方法
这个方法显示的是当前代码块是被哪一个线程在使用。
3.currentThread和This的去别
currentThread可以显示当前所在代码块正在被哪一个线程使用,而this是java的一个保留关键字,指的是当前所在类创建的对象,它携带的是当前对象的信息和状态
4.常用线程停止的方法
使用退出标志,使线程正常退出。
使用stop强制终止线程,不推荐使用,因为他们会和suspend和resume一样,都是过期作废的方法,使用后会产生不可预料的后果
使用interrupt方法终止线程
异常法退出
使用return退出线程
5.this.interrupted和this.Interrupted
this.interrupted:是指判断运行该代码的线程是否被终止,执行后具有将状态标志清除为false的功能
this.Interrupted:是指判断Thread的对象是否被终止,执行后不具有将状态标志清除为false的功能
6.暂停线程的方法之suspend和resume
suspend():可以使一个线程暂停。
resume():使暂停的线程恢复
两个方法的缺点:
a.独占,使用不当会产生对公共对象的独占,其他线程无法访问公共对象
b.线程不同步
7.sleep()和yeild()方法的区别
sleep()是指让当前线程进入阻塞状态一段时间,超过这个时间后会继续运行,阻塞的过程中不会释放获得的锁对象,而且必须显示的捕捉异常
yeild()方法是指让运行的线程释放资源进入到待运行队列,重新取争取cpu和锁对象
8.线程的优先级
通过getPriority()方法可以获得线程的优先级,通过setPriority()可以设置线程的优先级,线程的优先级由1-10十个数字划分成十个等级,数字越大优先级越高,越有可能最先使用资源,超过这个范围会报IllegalArgumentException异常。
优先级具有继承性,这体现在当线程B被线程A启动的时候,如果没有单独设置B的优先级,那么线程B的优先级会和线程A的优先级一致
9.方法中的变量不存在非线程安全问题,永远都是安全的,这是方法内部的变量是私有的特性有关。