Java_并发编程基础_Thread类

本文详细介绍了Java线程的六种状态,Thread类和Runnable、Callable接口的使用,以及线程的创建方式、多线程调度和线程池。同时涵盖了Lambda表达式的应用,以及线程安全的关闭方法。

线程 Thread.class

image.png

1. 线程的六种状态

image.png

  • NEW
    尚未启动的线程处于此状态。
  • RUNNABLE
    在Java虚拟机中执行的线程处于此状态。
  • BLOCKED
    被阻塞等待监视器锁定的线程处于此状态。
  • WAITING
    正在等待另一个线程执行特定动作的线程处于此状态。
  • TIMED_WAITING
    正在等待另一个线程执行动作达到指定等待时间的线程处于此状态。
  • TERMINATED
    已退出的线程处于此状态。
Thread.State getState()	// 返回此线程的状态。  

image.png

2. 线程的常用方法

long getId()					// 返回此线程的标识符。
static Thread currentThread()	// 返回对当前正在执行的线程对象的引用。

String getName()	// 返回此线程的名称。
void setName(String name)	// 将此线程的名称更改为等于参数 name 。

void setPriority(int newPriority)	// 更改此线程的优先级。MAX_PRIORITY = 10
int getPriority()	// 返回此线程的优先级。

boolean	isAlive()			// 测试这个线程是否活着。
boolean	isInterrupted()	    // 测试当前线程是否中断。


void start()	 // 导致此线程开始执行; Java虚拟机调用此线程的run方法。
void interrupt() // 中断这个线程。

void join()	 // 等待这个线程死亡(用来控制线程结束的顺序,让调用这个方法的线程先执行完)
// 调用该方法的线程将会一直占用处理机,把其它线程都阻塞,直至该线程结束,再执行其它线程
// 同样使用join()也会产生异常InterruptException

static void	sleep(long millis) // 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)
// sleep执行后会产生异常InterruptedException,需要捕捉或抛出
// 每个对象都有一把锁,sleep不会释放这把锁

static void	yield()	// 对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。
// 礼让线程,让当前正在执行的线程暂停,从运行状态转换为就绪状态
// 礼让不一定成功,可能CPU依旧重新调度该线程

boolean	isDaemon()			// 测试这个线程是否是守护线程。
// 线程分为用户线程和守护线程,虚拟机可以不用等待守护线程执行完毕就关闭
void setDaemon(boolean on)	// 将此线程标记为 daemon线程或用户线程
// 默认是false表示用户线程

Thread的常用构造器

public Thread()					// 分配一个新的Thread对象。
public Thread(String name)		// 创建一个新的Thread对象,并指定线程名称
public Thread(Runnable target)	// 封装Runnable对象为线程对象
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值