当前位置:嗨网首页>书籍在线阅读

03-线程的创建、运行和设置

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

1.2 线程的创建、运行和设置

本节介绍如何使用Java API对线程进行基本的操作。与Java语言中的基本元素一样,线程也是对象(Object)。在Java中,创建线程的方法有以下两种。

  • 直接继承 Thread 类,然后重写 run() 方法。
  • 构建一个实现 Runnable 接口的类并重写 run() 方法,然后创建该类的实例对象,并以其作为构造参数去创建 Thread 类的对象。建议首选这种方法,因为它可以带来更多的扩展性。

在本节中,我们将采用第二种方法创建线程,然后学习如何改变线程的属性。 Thread 类包含如下一些信息属性,它们能够辅助区分不同的线程、反映线程状态、控制其优先级等。

  • ID :该属性存储了每个线程的唯一标识符。
  • Name :该属性存储了线程的名字。
  • Priority :该属性存储了 Thread 对象的优先级。在Java 9中,线程优先级的范围为1~10,其中1表示最低优先级,10表示最高优先级。通常不建议修改线程的优先级。线程优先级仅供底层操作系统作为参考,不能保证任何事情,如果一定要修改,请知晓优先级仅仅代表了一种可能性。
  • Status :该属性保存了线程的状态。在Java中,线程有6种状态—— Thread.State 枚举中定义这些状态: NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED 。这些状态的具体意义如下。
    • NEW: 线程已经创建完毕但未开始执行。
    • RUNNABLE: 线程正在JVM中执行。
    • BLOCKED: 线程处于阻塞状态,并且等待获取监视器。
    • WAITING: 线程在等待另一个线程。
    • TIMED_WAITING: 线程等待另一个线程一定的时间。
    • TERMINATED: 线程执行完毕。

本节将在一个案例中创建10个线程来找出20000以内的奇数。