java set 多线程_Java学习笔记五十二(多线程方法)

Java中的多线程常用方法(二)。

1、void setName()方法

作用:设置当前线程的名称。664f07053e322983b39ee77239bcf6fa.png

2、int getPriority()方法

作用:获取当前线程的优先级。cbe6aa224ebe76d043e79bc6bab58faa.png

注:线程的优先级一共分为10个,分别用1到10表示。1表示最低优先级,5表示正常优先级(也是默认的优先级),10表示最高优先级。7991a4634e4a16a83837cb58f5d1d12c.png

线程的优先级越高,说明线程分配到的CPU时间片可能更多。

Java中main方法的优先级默认是5。

3、void setPriority()方法

作用:设置线程的优先级。674b57ac0414b942e309ba47c8305159.png

23cd4d0b06696651fca945b892bff626.png

4、boolean isAlive()方法

作用:判断当前线程是否处于活动状态。e6c951865cf9773b1bedc33ca3683d56.png

5、boolean isDaemon()方法

作用:判断当前线程是否为守护线程。5af5415a7a557ad60c9168a185a43a0f.png

6、守护线程和用户线程区别

<1>守护线程

守护线程依赖于创建它的线程。当创建守护线程的线程执行结束之后,无论守护线程是否执行结束,该守护线程都会立即结束。

举例:假设main方法中创建一个守护线程,然后main执行结束后,那么该守护线程也将结束。

在Java中,GC(垃圾回收器)就是一个典型的守护线程。

<2>用户线程

用户线程不依赖与创建它的线程。创建它的线程结束之后,用户线程会继续执行,直到用户线程代码执行结束。

7、void setDaemon()方法

作用:设置一个线程为守护线程。15f51e2e59c3fb98635a513bdfae5757.png

8、void join()方法c539ed048945dc8ca826ddc99e561fd1.png

join()方法有三个版本,分别如上图所示。

<1>无参数表示当前线程执行结束后,才会继续执行其他的线程。

<2>一个参数表示当前线程阻塞指定时间后,继续执行其他线程。

<3>两个参数表示精确到纳秒。作用相同。

一般使用join()方法。

举例说明:

创建一个测试线程ThreadTestOne类,如下所示:045ba2294c3ee755967f59d3283abc21.png

8.1、没调用join()方法前案例

在main方法中开启线程ThreadTestOne类:065602b34d63449e364b2a6ede715a02.png

测试结果如下图所示:3529fc2cd883131411834f2873aababb.png

8.2、调用join()方法后案例

同样在main方法中开启线程,并且调用join()方法:4d1c5f3b2a9dd18df2fe560cff431eb2.png

测试结果如下图所示:2330c1738c71704738a993faa049fe93.png

注意:对别两个输出结果,可以看出main输出的语句顺序不一致。

分析:第一个案例没有调用join()方法,所以开启t1线程后,main方法继续执行。而第二个案例调用了join()方法,main方法会等t1线程执行结束后再继续执行。

综上,Java中的多线程常用方法(二)介绍完了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值