【第八章】多线程——Thread类
Thread
类是多线程编程中常用的类,尤其是在基于 Java 语言的开发中。
它提供了创建和控制线程的基本功能。
下面是关于 Thread
类的一些关键点和常见用法:
1.Java 中的 Thread
类
在 Java 中,Thread
类位于 java.lang
包中,用于表示线程。
使用 Thread
类,你可以创建一个新的线程并启动它来执行并发任务。
2 用Thread类的子类创建线程
首先需从
Thread
类派生出一个子类,
在该子类中重写
run()
方法。
例:
class hand extends Thread
{
public void run()
{……}
}
继承 Thread
类:
- 创建一个类继承自
Thread
类,并重写run
方法。 - 创建该类的实例并调用
start
方法来启动新线程。
3.编程练习
题目:编写一个Java程序,创建两个线程,一个线程打印偶数,另一个线程打印奇数,交替打印1到10的数字。
提示:
- 可以使用两个线程分别打印偶数和奇数。
- 使用一个共享的计数器来控制打印的数字范围。
- 使用wait()和notify()来实现线程的交替打印。
参考代码:
public class PrintNumbers {
private static final Object lock = new Object();
private static int count = 1;
public static void main(String[] args) {
Thread oddThread = new Thread(() -> {
synchronized (lock) {
while (count <= 10) {
if (count % 2 != 0) {
System.out.println("奇数:" + count);
count++;
lock.notify();
} else {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
});
Thread evenThread = new Thread(() -> {
synchronized (lock) {
while (count <= 10) {
if (count % 2 == 0) {
System.out.println("偶数:" + count);
count++;
lock.notify();
} else {
try {
lock.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
});
oddThread.start();
evenThread.start();
}
}