Java 多线程是 Java 常用的编程技巧之一,可以有效提高程序的并发性能。本文将介绍 Java 多线程的两步掌握,通过两个示例说明,让大家更好理解和掌握。
步骤一:创建线程
Java 多线程的核心是线程的创建。Java 中有两种方式创建线程:继承 Thread 类和实现 Runnable 接口。具体示例如下:
继承 Thread 类
public class ThreadDemo extends Thread {
@Override
public void run() {
System.out.println("线程执行了!");
}
}
public static void main(String[] args) {
ThreadDemo threadDemo = new ThreadDemo();
threadDemo.start();
}
实现 Runnable 接口
public class RunnableDemo implements Runnable {
@Override
public void run() {
System.out.println("线程执行了!");
}
}
public static void main(String[] args) {
RunnableDemo runnableDemo = new RunnableDemo();
Thread thread = new Thread(runnableDemo);
thread.start();
}
在这两个示例中都是创建了一个线程,并重写了 run() 方法,在 run() 方法中定义了线程执行的任务,并通过 start() 方法来启动线程。
步骤二:控制线程
Java 多线程不仅要会创建线程,还需要学会如何控制线程。在 Java 中提供了多种方式控制线程的执行状态,例如:
- sleep():使线程休眠一段时间
- join():等待线程执行完毕
- interrupt():中断线程的执行
示例代码如下:
public static void main(String[] args) {
Thread thread = new Thread(() -> {
try {
Thread.sleep(1000);
System.out.println("线程执行了!");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
thread.start();
try {
thread.join();
System.out.println("主线程执行完毕!");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
在这个示例中,启动了一个线程并睡眠了 1 秒。在主线程中调用了 join() 方法,等待线程执行完毕再执行主线程的任务。最后打印了 "主线程执行完毕!"。
另外,如果需要中断一个线程的执行,可以使用 interrupt() 方法。使用这个方法会给线程一个中断信号,但并不能直接中断线程的执行。
public static void main(String[] args) {
Thread thread = new Thread(() -> {
while (!Thread.currentThread().isInterrupted()) {
System.out.println("线程正在执行!");
}
System.out.println("线程中断!");
});
thread.start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
thread.interrupt();
}
在这个示例中启动了一个线程并一直循环输出 "线程正在执行!",通过 isInterrupted() 判断线程是否被中断,最终打印 "线程中断!"。
通过这两个示例的说明,应该可以让大家更好的理解 Java 多线程的创建和控制,以及如何应用于实际开发中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 多线程之两步掌握 - Python技术站