Java是一种广泛应用于云计算领域的编程语言,它具有丰富的特性和库,可以用于开发前端、后端、移动应用等各种应用程序。下面是关于使用具有线程间通信的两个线程打印数字序列的完善答案:
class PrintThread implements Runnable {
private int num;
private Object lock;
public PrintThread(int num, Object lock) {
this.num = num;
this.lock = lock;
}
@Override
public void run() {
synchronized (lock) {
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName() + ": " + num);
num += 2;
lock.notify(); // 唤醒等待的线程
try {
lock.wait(); // 当前线程等待
} catch (InterruptedException e) {
e.printStackTrace();
}
}
lock.notify(); // 唤醒最后一个等待的线程
}
}
}
public class Main {
public static void main(String[] args) {
Object lock = new Object();
Thread thread1 = new Thread(new PrintThread(1, lock));
Thread thread2 = new Thread(new PrintThread(2, lock));
thread1.start();
thread2.start();
}
}
在上述代码中,我们创建了两个线程thread1
和thread2
,它们共享一个锁对象lock
。通过synchronized
关键字实现对lock
对象的互斥访问,其中一个线程打印奇数序列,另一个线程打印偶数序列。通过wait()
和notify()
方法实现线程间的通信和协调。
通过使用腾讯云的相关产品,您可以在云计算环境中灵活部署和运行Java程序,实现高性能、可靠的应用服务。
领取专属 10元无门槛券
手把手带您无忧上云