Java创建两个线程共享变量打印
引言
在Java中,可以通过创建多个线程来实现并发执行的效果。当多个线程需要共享同一个变量时,需要注意线程安全的问题。本文将介绍如何使用Java创建两个线程并共享变量打印的方法。
整体流程
以下是整个流程的步骤表格:
journey
title Java创建两个线程共享变量打印的流程
section 创建两个线程并共享变量打印
创建线程对象 | 创建两个线程Thread1和Thread2
创建共享变量 | 创建一个共享变量sharedVariable
实现线程任务 | 实现Runnable接口的run()方法
启动线程 | 调用线程对象的start()方法
等待线程完成 | 使用Thread类的join()方法等待线程执行完成
代码实现
创建线程对象
首先,我们需要创建两个线程对象Thread1和Thread2。可以通过继承Thread类或者实现Runnable接口来创建线程。在本例中,我们选择实现Runnable接口。
// 创建Thread1和Thread2的线程类
class Thread1 implements Runnable {
public void run() {
// 线程1任务
}
}
class Thread2 implements Runnable {
public void run() {
// 线程2任务
}
}
// 创建线程对象
Thread1 thread1 = new Thread1();
Thread2 thread2 = new Thread2();
创建共享变量
接下来,我们需要创建一个共享变量sharedVariable,用于线程之间的数据共享。
// 创建共享变量
int sharedVariable = 0;
实现线程任务
在Runnable接口的run()方法中,我们可以编写线程的具体任务逻辑。在本例中,我们将使用一个循环来打印共享变量的值。
class Thread1 implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
// 打印共享变量的值
System.out.println("Thread1: " + sharedVariable);
// 增加共享变量的值
sharedVariable++;
}
}
}
class Thread2 implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
// 打印共享变量的值
System.out.println("Thread2: " + sharedVariable);
// 减少共享变量的值
sharedVariable--;
}
}
}
启动线程
在主线程中,我们需要启动Thread1和Thread2线程。
// 启动线程
Thread t1 = new Thread(thread1);
Thread t2 = new Thread(thread2);
t1.start();
t2.start();
等待线程完成
最后,我们需要使用Thread类的join()方法来等待线程执行完成。
// 等待线程完成
try {
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
总结
通过以上步骤,我们成功地创建了两个线程并共享变量打印。在实际开发中,需要注意线程安全的问题,可以使用synchronized关键字或者Lock对象来保证共享变量的访问安全。希望本文对于刚入行的小白能够帮助到你,更好地理解和掌握Java创建两个线程共享变量打印的方法。如有疑问,请随时留言。