【Java练习题汇总】《第一行代码JAVA》多线程篇,汇总Java练习题——线程及多线程概念、Thread 类及 Runnable 接口、线程状态、synchronized同步操作...
由于篇幅限制,我将提供一个简单的Java多线程练习题的解决方案。该题目创建两个线程,这两个线程交替打印数字和字母。
public class ThreadExercise implements Runnable {
private int count = 0;
private boolean letter = true; // 控制交替打印数字和字母
@Override
public void run() {
while (count < 10) {
synchronized (this) {
if (letter) {
System.out.println("Thread " + Thread.currentThread().getId() + ": " + (char)('A' + count) + " ");
} else {
System.out.println("Thread " + Thread.currentThread().getId() + ": " + count + " ");
}
letter = !letter; // 切换打印状态
count++;
// 唤醒其他线程
this.notifyAll();
// 当count小于5时,当前线程等待
if (count < 5) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
public static void main(String[] args) {
ThreadExercise exercise = new ThreadExercise();
Thread t1 = new Thread(exercise);
Thread t2 = new Thread(exercise);
t1.start();
t2.start();
}
}
这段代码定义了一个ThreadExercise
类,实现了Runnable
接口。在run
方法中,使用synchronized
块来确保线程安全。通过notifyAll
和wait
方法,实现了线程间的通信和合作。两个线程交替运行,打印出数字和字母,直到打印到9。
评论已关闭