更新时间:2021-10-09 10:57:45 来源:极悦 浏览1289次
通过扩展 Thread 类
通过实现 Runnable 接口。
Thread 类提供构造函数和方法来创建和执行线程上的操作。Thread 类扩展了 Object 类并实现了 Runnable 接口。
Thread类的常用构造函数:
线()
线程(字符串名称)
线程(可运行 r)
线程(Runnable r,字符串名称)
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多线程编程教程,里面的内容丰富,通俗易懂,适合没有基础的朋友学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习