线程常用方法

线程常用方法

1. Thread.currentThread()

方法可以获得当前线程 Java 中的任何一段代码都是执行在某个线程当中的. 执行当前代 码的线程就是当前线程.
 同一段代码可能被不同的线程执行, 因此当前线程是相对 的,Thread.currentThread()方法的返回值是在代码实际运行时候的线 程对象

在这里注意 this.currentThread()Thread.currentThread() 如果在线程中调用子线程,this.currentThread()表示获得当前的线程,而Thread.currentThread()表示new Thread()的实例。

2. setName()/getName()

thread.setName(线程名称), 设置线程名称 thread.getName()返回线程名称 通过设置线程名称,有助于程序调试,提高程序的可读性,
 建议为 每个线程都设置一个能够体现线程功能的名称

3. isAlive())

thread.isAlive()判断当前线程是否处于活动状态 活动状态就是线程已启动并且尚未终止

4. sleep()

Thread.sleep(millis); 让当前线程休眠指定的毫秒数
当前线程是指 Thread.currentThread()返回的线程

5. getId()

thread.getId()可以获得线程的唯一标识 
注意: 某个编号的线程运行结束后,该编号可能被后续创建的线程使 用 重启的 JVM 后,同一个线程的编号可能不一样

6. yield()

Thread.yield()方法的作用是放弃当前的 CPU 资源

7. yield()

  thread.setPriority( num ); 设置线程的优先级 java 线程的优先级取值范围是 1 ~ 10 , 
  如果超出这个范围会抛出 异常 IllegalArgumentException. 在操作系统中,优先级较高的线程获得 CPU 的资源越多 
  线程优先级本质上是只是给线程调度器一个提示信息,以便于调 度器决定先调度哪些线程. 注意不能保证优先级高的线程先运行.
  Java 优先级设置不当或者滥用可能会导致某些线程永远无法得到 运行,即产生了线程饥饿. 线程的优先级并不是设置的越高越好,
  一般情况下使用普通的优先级即可,即在开发时不必设置线程的优先级 线程的优先级具有继承性, 在 A 线程中创建了 B 线程,则 B 线程的 优先级与 A 线程是一样的

8. interrupt()

其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),
但实际上只是给线程设置一个中断标志,线程仍会继续运行。

注意调用 interrupt()方法仅仅是在当前线程打一个停止标志,并不是真正的停止线程
1).interrupted()方法

作用是测试当前线程是否被中断(检查中断标志),返回一个boolean并清除中断状态,第二次再调用时中断状态已经被清除,将返回一个false。

true表示线程中断,false表示其他
2).isInterrupted()方法

测试此线程是否被中断,线程的中断状态不受影响,如果线程已经被中断,则忽略直接返回false

作用是只测试此线程是否被中断 ,不清除中断状态
详细看此博客
9. setDaemon()

守护线程 是指程序运行的时候在后台提供了一种通用服务的线程
Java 中的线程分为用户线程与守护线程 守护线程是为其他线程提供服务的线程,如垃圾回收器(GC)就是一 个典型的守护线程 
守护线程不能单独运行, 当 JVM 中没有其他用户线程,只有守护线 程时,守护线程会自动销毁, JVM 会退出

此文来自网络,如有侵权,联系删。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值