线程控制的基本方法

程序每次的运行结果可能是不一样的。这是因为多个线程在执行时会抢占 CPU 资源,抢到之后才会执行。而程序员是无法精准控制这种抢夺情况的。尽管如此,Thread 类还提供了一些线程控制方法,虽不能精准控制线程的抢夺情况,但能够帮助我们更好的控制线程。

void start():使该线程开始执行,Java 虚拟机负责调用该线程的 run() 方法。
void sleep(long millis):静态方法,线程进入阻塞状态,在指定时间(单位为毫秒)到达之后进入就绪状态。
void yield():静态方法,当前线程放弃占用 CPU 资源,回到就绪状态,使其他优先级不低于此线程的线程有机会被执行。
void join():只有当前线程等待加入的线程完成,才能继续往下执行。
void interrupt():中断线程的阻塞状态(而非中断线程),例如一个线程 sleep(1000000000) ,为了中断这个过长的阻塞过程,可以调用该线程的 interrupt() 方法,中断阻塞。需要注意的是,此时 sleep() 方法会抛出 InterruptedException 异常。
void isAlive():判定该线程是否处于活动状态,处于就绪、运行和阻塞状态的都属于活动状态。
void setPriority(int newPriority):设置当前线程的优先级。
int getPriority():获得当前线程的优先级。

线程通常在三种情况下会终止,最普遍的情况是线程中的 run() 方法执行完毕后线程终止,或者线程抛出了异常且未被捕获,另外还有一种情况是调用当前线程的 stop() 方法终止线程(该方法已被废弃)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值