jdk源码之Thread

jdk源码之Thread

一、Thread源码

在这里插入图片描述

public class Thread
extends Object
implements Runnable

二、介绍

线程是程序中执行的线程。 Java虚拟机允许应用程序同时执行多个执行线程。
每个线程都有优先权。 具有较高优先级的线程优先于优先级较低的线程执行。 每个线程可能也可能不会被标记为守护程序。 当在某个线程中运行的代码创建一个新的Thread对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时才是守护线程。

当Java虚拟机启动时,通常有一个非守护进程线程(通常调用某些指定类的名为main的方法)。 Java虚拟机将继续执行线程,直到发生以下任一情况:

  1. 所有不是守护线程的线程都已经死亡
  2. 要么从对run方法的调用中返回,要么抛出一个异常,并传播到run方法之外

三、嵌套类

Enum Thread.State

NEW 
线程尚未启动的线程状态。 
 
RUNNABLE 
可运行线程的线程状态。处于可运行状态的线程正在 Java 虚拟机中执行,但它可能正在等待来自操作系统的其他资源,例如处理器。

BLOCKED 
处于阻塞状态的线程等待监控锁的状态。一个处于阻塞状态的线程正在等待监控锁,以进入一个同步块/方法或在调用Object.wait()后重新进入一个同步块/方法。    

WAITING 
等待线程的线程状态,由于调用以下方法之一,线程处于等待状态: 
	Object.wait没有超时 
	Thread.join没有超时 
	LockSupport.park 
等待状态的线程正在等待另一个线程执行特定的动作。 例如,已在对象上调用 <tt>Object.wait()<tt> 的线程正在等待另一个线程在其上调用 <tt>Object.notify()<tt> 或 <tt>Object.notifyAll()<tt>。调用 <tt>Thread.join()<tt> 的线程正在等待指定的线程终止。

TIMED_WAITING 
具有指定等待时间的等待线程的线程状态。 线程处于定时等待状态,因为在指定的正等待时间内调用以下方法之一: 
	Thread.sleep 
	Object.wait与超时 
	Thread.join与超时 
	LockSupport.parkNanos 
	LockSupport.parkUntil 

TERMINATED 
终止线程的线程状态。  

四、属性

static int MAX_PRIORITY 
	线程可以拥有的最大优先级。  10
static int MIN_PRIORITY 
	线程可以拥有的最小优先级。   5
static int NORM_PRIORITY 
	分配给线程的默认优先级。      1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值