📜  Java创建线程

📅  最后修改于: 2020-09-26 14:18:41             🧑  作者: Mango

如何创建线程

有两种创建线程的方法:

  • 通过扩展Thread类
  • 通过实现Runnable接口。

线程类:

Thread类提供了构造函数和方法来在线程上创建和执行操作。Thread类扩展了Object类并实现了Runnable接口。

线程类的常用构造函数:

Thread()线程(字符串名称)Thread(可运行r)线程(可运行r,字符串名称)

Thread类的常用方法:

public void run():用于对线程执行操作。 public void start():开始执行线程。JVM在线程上调用run()方法。 public void sleep(长毫秒):使当前正在执行的线程进入休眠状态(暂时停止执行)指定的毫秒数。 public void join():等待线程死亡。 public void join(长毫秒):等待线程在指定的毫秒内死亡。 public int getPriority():返回线程的优先级。 public int setPriority(int priority):改变线程的优先级。 public String getName():返回线程的名称。 public void setName(String name):更改线程的名称。公共线程currentThread():返回当前正在执行的线程的引用。 public int getId():返回线程的ID。 public Thread.State getState():返回线程的状态。 public boolean isAlive():测试线程是否处于活动状态。 public void yield():使当前正在执行的线程对象暂时暂停并允许其他线程执行。 public voidsuspend():用于挂起线程(已描述)。 public void resume():用于恢复被挂起的线程(已描述)。 public void stop():用于停止线程(已废弃)。 public boolean isDaemon():测试线程是否是守护线程。 public void setDaemon(boolean b):将线程标记为守护程序或用户线程。 public void interrupt():中断线程。 public boolean isInterrupted():测试线程是否被中断。 public static boolean interrupted():测试当前线程是否已被中断。

可运行的界面:

Runnable接口应该由实例旨在由线程执行的任何类实现。可运行接口只有一个名为run()的方法。

public void run():用于对线程执行操作。

启动线程:

Thread类的start()方法用于启动新创建的线程。它执行以下任务:一个新线程开始(带有新的调用栈)。线程从“新建”状态移动到“可运行”状态。当线程有机会执行时,其目标run()方法将运行。

1)通过扩展Thread类的Java线程示例


class Multi extends Thread{
public void run(){
System.out.println("thread is running...");
}
public static void main(String args[]){
Multi t1=new Multi();
t1.start();
 }
}
Output:thread is running...

2)通过实现Runnable接口的Java线程示例


class Multi3 implements Runnable{
public void run(){
System.out.println("thread is running...");
}

public static void main(String args[]){
Multi3 m1=new Multi3();
Thread t1 =new Thread(m1);
t1.start();
 }
}
Output:thread is running...

如果您不扩展Thread类,则您的类对象将不被视为线程对象。因此,您需要显式创建Thread类对象。我们正在传递实现Runnable的类的对象,以便您的类run()方法可以执行。