Thread方法

getId()

这个方法返回线程的 ID 值,类型为 long。线程的 ID 在线程的整个生命周期中都不变。

getPriority()和setPriority()

这两个方法控制线程的优先级。调度程序处理线程优先级的策略之一是,如果有优先级高的线程在等待,就不运行优先级低的线程。不过,大多数情况下都无法影响调度程序解释优先级的方式。线程的优先级使用 1~10 之间的整数表示。

setName()和getName()

开发者使用这两个方法设定或取回单个线程的名称。为线程起名字是个好习惯,因为这样调试时更方便,尤其是使用 jvisualvm 等工具。13.2 节会介绍如何使用 jvisualvm。

getState()

返回一个 Thread.State 对象,说明线程处于什么状态。表示状态的各个值在 6.5.1 节介绍过。

isAlive()

用来测试线程是否还“活着”。

start()

这个方法用来创建一个新应用线程,然后再调用 run() 方法调度这个线程,开始执行。正常情况下,执行到 run() 方法的末尾或者执行 run() 方法中的一个 return 语句后,线程就会结束运行。

interrupt()

如果调用 sleep()、wait() 或 join() 方法时阻塞了某个线程,那么在表示这个线程的 Thread 对象上调用 interrupt() 方法,会让这个线程抛出 InterruptedException 异常(并把线程唤醒)。如果线程中涉及可中断的 I/O 操作,那么这个 I/O 操作会终止,而且线程会收到 ClosedByInterruptException 异常。即便线程没有从事任何可中断的操作,线程的中断状态也会被设为 true。

join()

在调用 join() 方法的 Thread 对象“死亡”之前,当前线程一直处于等待状态。可以把这个方法理解为一个指令,在其他线程结束之前,当前线程不会继续向前运行。

setDaemon()

用户线程是这样一种线程,只要它还“活着”,进程就无法退出——这是线程的默认行为。有时,程序员希望线程不阻止进程退出——这种线程叫守护线程。一个线程是守护线程还是用户线程,由 setDaemon() 方法控制。

setUncaughtExceptionHandler()

线程因抛出异常而退出时,默认的行为是打印线程的名称、异常的类型、异常消息和堆栈跟踪。如果这么做还不够,可以在线程中安装一个自定义的处理程序,处理未捕获的异常。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 线程调度和线程控制

    与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线 程获取 CPU 资源的概率较大,优先级低的并非没机会执行。线程的优先级用 1-10...

    宇宙之一粟
  • Java多线程相关面试题

    反对使用 stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象 处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出...

    宇宙之一粟
  • 为什么需要使用线程池?

    (3) 提高线程的可管理性。 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。

    宇宙之一粟
  • 40 个Java多线程问题总结

    原文地址:http://www.cnblogs.com/xrq730/p/5060921.htm

    一个优秀的废人
  • java中线程池的几种实现方式

    多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.

    海仔
  • 100道Java并发和多线程基础面试题大集合(含解答),这波面试稳了~

    这些多线程的问题来源于各大网站,可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回...

    程序员白楠楠
  • 线程的创建

    1. 定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务。

    黑洞代码
  • 面试必考——线程池原理概述

    线程池的源码解析较为繁琐。各位同学必须先大体上理解线程池的核心原理后,方可进入线程池的源码分析过程。

    黑洞代码
  • 图文介绍进程和线程的区别

    先了解一下操作系统的一些相关概念,大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制...

    趣学程序-shaofeer
  • 笔记09 - 线程池刨根问底

    我们知道CPU运行的最小单位是线程,Java中实现并发是通过多线程来完成的,利用多线程提高了对CPU资源的利用率,但是线程的创建和销毁是很消耗性能的。线程的创建...

    码农帮派

扫码关注云+社区

领取腾讯云代金券