Thread类相关API操作

来源:互联网 发布:网络结构七层 编辑:程序博客网 时间:2024/06/05 20:17

1.currentThread(); //获取当前执行当前线程的线程对象

2.isAlive();//当前线程是否存活(正在执行)

3.sleep();//是当前线程睡眠一段时间,参数单位毫秒

4.getId();//获取当前线程的唯一标识

5.yield();//释放当前线程的控制权,将控制权有CPU调度

6.interrupt();//停止线程执行(只调用这个方法无法种植线程的执行,需要配合interrupted()才能中断线程。线程再sleep()的情况下中断会抛异常并且清除停止状态的值,使之变为false)

7.interrupted();//测试当前线程是否已经是中断状态,执行后具有将状态标志清除为false的功能。此方法多次调用会有问题。比如第一次中断线程,再次调用则会清除中断状态

8.isInterrupted();//测试线程是否已中断

9.setPriority();//设置线程的优先级,优先级越高,优先级执行的几率越大。取值范围是1~10


jdk中不推荐使用的过期的方法以及原因;

stop();//强制中断当前线程。强制停止某个线程可能会造成某些清理操作无法完成。而且会将对象的锁给清除掉,有可能会造成数据不一致的问题。

suspend();//暂停当前线程的执行,此操作并不会释放锁,有锁独占的问题、

                  另外如果是System.out.println()中暂停啦线程,同步锁并未释放。其他有System.out.println()的地方就无法执行。

  因为System.out.println()本省底层的实现也是基于synchronized的。一个对象占着锁不放,这边就一直得不到执行。