(3)线程API

1.sleep

该方法为静态方法,一个需要传入毫秒数,另外一个传入毫秒和纳秒数。

sleep 方法会使当前线程进入指定时间休眠,但是休眠期间,不会释放 monitor 锁的所有权。

可使用 TimeUnit 替代 Thread.sleep

当线程正在 sleep 时,调用中断方法中断该线程,会抛出异常。

2.yield

该方法会提醒调度器当前线程愿意放弃当前的CPU资源,如果CPU资源不紧张,则会忽略这种提醒。会使当前线程从 RUNNING 状态切换到 RUNNABLE状态。

3.setPriority

设置线程优先级。优先级在 1-10 期间,值越大,优先级越大。

如果不设置优先级,会遵从父类优先级。

如果设置优先级,优先级在 1-10 期间,如果大于所在组的最大优先级,会设置为线程组所在最大优先级。main 线程的优先级为 5。

public final void setPriority(int newPriority) {
        ThreadGroup g;
        checkAccess();
        if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {
            throw new IllegalArgumentException();
        }
        if((g = getThreadGroup()) != null) {
            if (newPriority > g.getMaxPriority()) {
                newPriority = g.getMaxPriority();
            }
            setPriority0(priority = newPriority);
        }
    }

4.线程ID

getId(),获取线程 ID ,线程的ID在整个JVM进程中都会是唯一的。

5.当前线程

currentThread()

6.线程上下文类加载器

getContextClassLoader() 如果没有设置类加载器,则保持与父线程同样的类加载器。

7.线程interrupt

public void interrupt()
public boolean isInterrupted()
public static boolean interrupted()
interrupt
在一个线程内部存在着名为 interrupt flag 的标识,如果一个线程被 interrupt ,那么它的 flag 将被设置。如果当前线程正在执行可中断方法被阻塞时,调用 interrupt 方法将其中断,反而会导致 flag 被清除。
isInterrupted
是一个成员方法。主要判断当前线程是否被中断,该方法仅仅对 interrupt 标识的一个判断,并不会影响标识发生任何改变。
interrupted
该方法是一个静态方法,其也用于判断当前线程是否被中断,该方法会直接擦除掉线程的 interrupt 标识。

8.join

join 方法也是一个可中断的方法。

在 A 线程中,调用 B 线程的B.join()方法,会使 A 线程处于 BLOCKED 状态,直至 B线程结束或者B线程达到给定时间。

9.关闭线程

stop(不建议使用)
该方法标注过时,而且使用该方法关闭线程,会使关闭的线程可能不会释放 monitor 的锁。不建议使用。
正常关闭
线程正常退出。
捕获中断信号关闭线程
通过捕获中断信号进行关闭线程。
使用 volatile 开关控制
定义一个变量使用 volatile 修饰。
异常退出
不论Thread 中的 run 方法,还是 Runnable 中的 run 方法,是不允许抛出checked异常的。
进程假死
程序不进行任何作业,就像死了一样,事实上它是没有死的,这个程序出现阻塞或者死锁情况。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值