如何创建线程
有两种创建线程的方法:
通过extends Thread类
通过实现Runnable接口。
线程类:
Thread类提供用于在线程上创建和执行操作的构造函数和方法。Thread类扩展了Object类并实现了Runnable接口。
线程类的常用构造函数:
Thread()
Thread(String name)
Thread(Runnable r)
Thread(Runnable r,String name)
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接口应该由其实例旨在由线程执行的任何类实现。可运行接口只有一个名为run()的方法。
public void run(): 用于对线程执行操作。
启动线程:
Thread类的
start()方法用于启动新创建的线程。它执行以下任务:
新线程开始(带有新的调用栈)。
线程从"新建"状态转移到"可运行"状态。
当线程有机会执行时,其目标run()方法将运行。
1)通过扩展线程类的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...
如果不extends Thread类,则您的类对象将不被视为线程对象。因此,您需要显式创建Thread类对象。我们正在传递实现Runnable的类的对象,以便您的类运行()方法可以执行。