java多线程常用方法_Java多线程入门中几个常用的方法

一.currentThread()方法

currentThread方法就是返回当前被调用的线程。

该方法为一个本地方法,原码如下:

/*** Returns a reference to the currently executing thread object.

*

*@returnthe currently executing thread.*/

public static native Thread currentThread();

可以看出他返回的是一个线程对象。

下面来看一个列子:

public class CurrentThreadText extendsThread{publicCurrentThreadText(){

System.out.println("构造器被"+Thread.currentThread().getName()+"线程调用了");

}

@Overridepublic voidrun(){

System.out.println("run方法被"+Thread.currentThread().getName()+"线程调用了");

}public static voidmain(String[] args) {

System.out.println("main方法被"+Thread.currentThread().getName()+"线程调用了");

CurrentThreadText cu=newCurrentThreadText();

cu.start();

}

}

结果如下:

1c818aa5ea48e258d2a9e991c183fe0e.png

除了run方法是在一个被自动取名为Thread-0的线程中其他的两个都在main方法中。

但是我们不使用start方法来启动线程,我们直接调用run方法会怎么样呢?

代码如下:

public static voidmain(String[] args) {

System.out.println("main方法被"+Thread.currentThread().getName()+"线程调用了");

CurrentThreadText cu=newCurrentThreadText();

cu.run();//我直接调用了run方法

}

结果:

72fd63d1a3ac397f12106024516c72d9.png

结果都是被main这个线程调用了,所以说想要启动多线程,就必须使用start方法而不是run方法。run方法就是和单线程一样按着顺序来调用,都在一个main线程中。

二.isAlive()方法

isAlive()方法人如其名意思就是“死没死啊?”,判断线程是否处于活跃状态

列子如下:

public class IsAliveText extendsThread{

@Overridepublic voidrun(){

System.out.print("调用run这个方法的线程为"+this.getName());if(this.isAlive()){

System.out.println("这个线程是活跃的");

}else{

System.out.println("这个线程是不活跃的");

}

}public static voidmain(String[] args) {

IsAliveText is=newIsAliveText();

System.out.printf(String.format("开始时当前线程为%s,%s", is.getName(),is.isAlive()?("活跃"):("不活跃")));

System.out.println();

is.start();

System.out.printf(String.format("结束时当前线程为%s,%s", is.getName(),is.isAlive()?("活跃"):("不活跃")));

System.out.println();

}

}

结果如下:

c664f82201b9cc068c92867fe971c0cc.png

三.sleep()方法

sleep(n)方法是指让某个线程睡眠n个毫秒,比如

public classThreadSleepText {public static void main(String[] args) throwsException {

System.out.println("当前线程为"+Thread.currentThread().getName());

Thread.sleep(5000);

System.out.println("结束");

}

}

程序会在5秒后结束。

四.getID()方法

过得线程的唯一标识

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值