2.多线程基础-线程方法

线程方法:多线程常用方法与优先级

A.线程的主要方法

1.currentThread:得到当前线程

2.isAlive:判断当前线程是否处于活动状态

3.sleep:在指定的毫秒数内让当前“正在执行的线程”暂停执行,这个“正在执行的线程”是指this.currentThread()返回的线程

  3.1:sleep和wait的区别:

      共同点:sleep和wait都会释放线程的CPU占用

      不同点:sleep属于线程的方法,且sleep不会释放当前对象的锁。而wait属于Object的方法,且会释放对于当前对象的锁

4.getId:去的当前线程的唯一标识

5.interrupt:给当前标记为中断状态, interrupted:测试当前线程是否已经中断, isInterrupted:测试当前线程是否已经中断

Thread.currentThread().interrupt();//此处会给当前事务打一个中断标记,但是并不是放弃后续的代码执行
Thread.interrupted(); //true
Thread.interrupted(); //false 按照上面的执行 那么就是此结果 第一次返回true并且清除中断状态 因此第二次为false
Thread.currentThread().interrupt();
Thread.currentThread().isInterrupted();//true
Thread.currentThread().isInterrupted(); //true 此方法不会清除状态

6.stop:暴力停止线程 调用stop方法会跑出ThreadDeath异常 在通常情况下此异常不需要显示捕捉

6.stop:暴力停止线程

7.suspend与resume:暂停与恢复程序执行:该方法会当前的线程对象 使得别的线程无法调用该线程的方法

8.yield:放弃当前CPU资源 但是放弃的时间不确定,也可能刚刚放弃 又马上获取

 

B.线程的优先级

1.线程的优先级

    线程可以划分优先级,优先级高的线程可以得到的CPU资源较多,也就是CPU优先执行优先级较高的程序 MIN_PRIORITY = 1 MAX_PRIORITY = 10

2.线程优先级的继承特性

    线程的优先级具有继承性 子类与父类的优先级是一样的,高优先级的程序总是大部分先执行完,但是不代表高优先兴的程序全部先执行完毕

3.优先级具有随机性,因此不要将优先级作为程序执行的顺序

 

posted @ 2020-12-20 16:06  发条良子  阅读(100)  评论(0)    收藏  举报