Java线程常用知识点

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.方法中的变量不存在非线程安全问题,永远都是安全的,这是方法内部的变量是私有的特性有关。





你可能感兴趣的:(Java)