创建线程的方法 - 极悦
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 创建线程的方法

创建线程的方法

更新时间:2021-10-09 10:57:45 来源:极悦 浏览1289次

创建线程有两种方式:

通过扩展 Thread 类

通过实现 Runnable 接口。

创建线程的方法

线程类:

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

Thread类的常用构造函数:

线()

线程(字符串名称)

线程(可运行 r)

线程(Runnable r,字符串名称)

Thread类的常用方法:

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

public void start():开始线程的执行。JVM在线程上调用run()方法。

public void sleep(long miliseconds):使当前正在执行的线程休眠(暂时停止执行)指定的毫秒数。

public void join():等待一个线程死亡。

public void join(long miliseconds):等待一个线程在指定的毫秒内死亡。

public int getPriority():返回线程的优先级。

public int setPriority(int priority):改变线程的优先级。

public String getName():返回线程的名称。

public void setName(String name):更改线程的名称。

public Thread currentThread():返回当前执行线程的引用。

public int getId():返回线程的id。

public Thread.State getState():返回线程的状态。

public boolean isAlive():测试线程是否存活。

public void yield():使当前正在执行的线程对象暂时暂停并允许其他线程执行。

public void suspend():用于挂起线程(已弃用)。

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 接口应该由其实例旨在由线程执行的任何类实现。Runnable 接口只有一个名为 run() 的方法。

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

开始一个线程:

Thread 类的start() 方法用于启动新创建的线程。它执行以下任务:

一个新线程开始(使用新的调用堆栈)。

线程从 New 状态移动到 Runnable 状态。

当线程有机会执行时,它的目标 run() 方法将运行。

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

文件名: Multi.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();  
 }  
}  

输出:

线程正在运行...

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

文件名: Multi3.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);   // Using the constructor Thread(Runnable r)  
t1.start();  
 }  
}  

输出:

线程正在运行...

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

3.使用线程类:Thread(String Name)

我们可以使用上面定义的构造函数直接使用 Thread 类来生成新线程。

文件名: MyThread1.java

public class MyThread1  
{  
// Main method  
public static void main(String argvs[])  
{  
// creating an object of the Thread class using the constructor Thread(String name)   
Thread t= new Thread("My first thread");  
  
// the start() method moves the thread to the active state  
t.start();  
// getting the thread name by invoking the getName() method  
String str = t.getName();  
System.out.println(str);  
}  
}  

输出:

我的第一个线程

(4)使用线程类:Thread(Runnable r, String name)

观察以下程序。

文件名: MyThread2.java

public class MyThread2 implements Runnable  
{    
public void run()  
{    
System.out.println("Now the thread is running ...");    
}        
// main method  
public static void main(String argvs[])  
{   
// creating an object of the class MyThread2  
Runnable r1 = new MyThread2();     
// creating an object of the class Thread using Thread(Runnable r, String name)  
Thread th1 = new Thread(r1, "My new thread");      
// the start() method moves the thread to the active state  
th1.start();     
// getting the thread name by invoking the getName() method  
String str = th1.getName();  
System.out.println(str);  
}    
}    

输出:

我的新线程

现在线程正在运行...

如果大家对此感兴趣,想了解更多相关知识,可以关注一下极悦的Java多线程编程教程,里面的内容丰富,通俗易懂,适合没有基础的朋友学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>