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

多线程的常用方法

1. 取得和设置线程名称

  • 在Thread类中,可以通过getName()方法取得线程的名称,通过setName()方法设置线程的名称。
  • 线程的名称一般在启动线程前设置,但也允许为已经运行的线程设置名称。运行两个Thread对象有相同的名字,但为了清晰,应该尽量避免这种情况发生。
  • 另外如果程序并没有为线程指定名称,则系统会自动的为线程分配一个名称。
T t1=new T();
t1.setName("线程A");

取得线程:

Thread.currentThread().getName()

这里有一个方法Thread.currenThread()这个方法是取得当前线程,就是相当于this
关键字的作用一样。

这里当我们为线程设置名称后,线程就是我们设置的名称,但是当我们没有设置名称的时候线程会自动创建线程名称以Thread-0开始。

  1. 主线程
class R implements Runnable{
	public void run() {
		for(int i=0;i<3;i++) {
			System.out.println(Thread.currentThread().getName()+i);}}}
public class Demo02 {
public static void main(String[] args) {
	R r=new R();
	new Thread(r,"thread-A").start();
	r.run();}}

运行结果:
图片

这里我们直接通过线程对象调用里面的run()方法,所以输出的结果中包含一个main线程,此线程就是由r.run()。因为调用此语句是由主方法完成的,也就是说实际上主方法本身也是一个线程—主线程。

问题:既然主方法都是以线程的形式出现的,那么Java运行时启动多少个线程?

至少启动两个。一个是主线程,一个是GC线程。

  1. 判断线程是否启动
thread.isAlive()
  1. 线程的强制运行

在操作系统中,可以使用join()方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等待次线程完成之后才可以继续执行。

join()方法

  1. 线程的休眠

线程的休眠可以让线程暂停执行

在程序中允许一个线程暂时的休眠,直接使用Thread.sleep()方法即可。

  1. 线程的中断

当一个线程运行的时候,另外一个线程可以直接通过interrupt()方法,中断其运行状态。

  1. 线程的优先级

在Java的线程操作中,所有的线程在运行前都会保持在就绪状态,那么此时,那个线程的优先级高,那个线程就有可能会先被执行。

设置方式线程名称.setPrionity(优先级)

图片
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44762290/article/details/112379382