线程的各种函数

java的线程操作还给了我们很多方便的函数来对当前运行的线程进行处理,比如:

Thread.isAlive()//判断当前线程是否存活

Thread.getName()//获取进程的名字

Thread.sleep()//让当前线程睡眠多少时间

Thread.interrupt() //设置线程的状态为中断

Thread.interrupted() //判断线程是否是中断状态,并且将状态设置为非中断状态

Thread.Isinterrupted() // 判断是否是中断状态,但是不设置为非中断状态

当我们相应中断一个线程,停止运行线程下面的代码的时候,应该怎么办呢,从上面的api来看我们只能将线程的状态设置为中断状态,并不能真正的停止线程的运行,所以我们需要在线程中判断线程的状态是否被设置为中断状态,如果是的话,就需要抛出异常来停止执行下面的代码了,如
public class ReaderThread implements Runnable{
    public void run(){
        for(int i = 0;i<1000;i++){
            if(this.interrupted()){
                throw new InterruptedExection();
            }

            System.out.println("i="+i);
        }
        System.out.println("我在for下面");
    }
}

ReaderThread reader = new ReaderThread();
Thread t1 = new Thread(reader);
t1.start();
t1.interrupt();

还有一种已经废弃的方式也可以停止一个线程就是stop方法,现在已经不建议使用,因为太过暴力,会不能很好的处理一些数据的清理工作

Thread.suspend()// 用来暂停线程

但是这个会导致公共资源的占用

Thread.resume()// 开启线程

Thread.yield()// 放弃当前占用的cpu资源,让给其他的线程使用

线程的优先级

优先级具有继承性,比如在线程A中启动线程B,线程B和线程A的优先级是一样的,优先级的常量为1-10

Thread.getPriority();// 获取当前线程的优先级

Thread.setPriority();// 设置线程的优先级

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值