线程的常用方法与生命周期

本文详细介绍了Java中线程的构造器、常用方法(如start(),run(),join()等)、优先级设定以及线程生命周期的变化。通过新年倒计时示例演示了如何使用这些概念。
摘要由CSDN通过智能技术生成

一、线程的常用结构
1.线程中的构造器
public Thread():分配一个新的线程对象。
public Thread(String name):分配一个指定名字的新的线程对象。
public Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口中的run方法。
public Thread(Runnable target,String name):分配一个带有制定目标新的线程对象并指定名字。
2.线程中的常用方法
start():①启动线程②调用线程的run()
run():将线程要执行的操作声明在run()currentThread():获取当前执行代码对应的线程
getName():获取线程名
setName():设置线程名
sleep(long millis):静态方法,调用时,可以使得当前线程睡眠指定的毫秒数
yield():一旦执行此方法,就释放CPU的执行权
join():在线程a中通过线程b调用join(),意味着线程a进入阻塞状态,直到线程b执行结束,线程a才结束阻塞状态继续执行。
isAlive():判断当前线程是否存活
    
过时方法
stop():强行结束一个线程的执行,直接进入死亡状态。不建议使用
void suspend() / void resume():可能造成死锁,所以也不建议使用
3.线程的优先级
getPriority():获取线程的优先级
setPriority():设置线程的优先级,范围[1,10]
    
Thread类内部声明的三个常量:
/**
  * The minimum priority that a thread can have.
  * 最低优先级
*/
public final static int MIN_PRIORITY = 1;

/**
 * The default priority that is assigned to a thread.
 * 普通优先级,默认情况下main线程具有普通优先级。
*/
public final static int NORM_PRIORITY = 5;

/**
  * The maximum priority that a thread can have.
  * 最高优先级
*/
public final static int MAX_PRIORITY = 10;
二、线程的生命周期

jdk1.5之前

在这里插入图片描述

jdk1.5之后

在这里插入图片描述

例题:新年倒计时

模拟新年倒计时,每隔1秒输出一个数字,依次输出10,9,8…1,最后输出:新年快乐!

public class HappyNewYear {
    public static void main(String[] args) {
        for (int i = 10; i >= 0; i--) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            if (i > 0) {
                System.out.println(i);
            } else {
                System.out.println("Happy New Year!");
            }
        }

    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

该叫啥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值