关于进程之间共享变量的问题
class A implements Runnable {
private int[] arr = new int[3];
public void run() {
arr[0] = 4;
arr[1] = 5;
arr[2] = 6;
}
public int[] getArr() {
return arr;
}
public void setArr(int[] arr) {
this.arr = arr;
}
}
public class Main {
public static void main(String args[]) {
A a = new A();
int[] arr = { 0, 3, 8 };
a.setArr(arr);
Thread t = new Thread(a);
t.start();
int[] b = a.getArr();
for (int i = 0; i < b.length; i++)
System.out.println(b[i]);
}
}
/*
* 我这题的主要意思是arr作为A类对象线程和主线程的共享变量,当arr在A对象里面被改变时,主线程只能等待,不准去获取arr,
* 只有run()方法执行完后,才能去读取arr,然后输出。
* 不知该如何设置?
*/
private int[] arr = new int[3];
public void run() {
arr[0] = 4;
arr[1] = 5;
arr[2] = 6;
}
public int[] getArr() {
return arr;
}
public void setArr(int[] arr) {
this.arr = arr;
}
}
public class Main {
public static void main(String args[]) {
A a = new A();
int[] arr = { 0, 3, 8 };
a.setArr(arr);
Thread t = new Thread(a);
t.start();
int[] b = a.getArr();
for (int i = 0; i < b.length; i++)
System.out.println(b[i]);
}
}
/*
* 我这题的主要意思是arr作为A类对象线程和主线程的共享变量,当arr在A对象里面被改变时,主线程只能等待,不准去获取arr,
* 只有run()方法执行完后,才能去读取arr,然后输出。
* 不知该如何设置?
*/
...全文
相关推荐
探究Python多进程编程下线程之间变量的共享问题
### 探究Python多进程编程下线程之间变量的共享问题#### 一、问题背景与分析在Python中,由于全局解释器锁(Global Interpreter Lock, GIL)的存在,多线程并不能实现真正的并行执行
python 多进程共享全局变量之Manager()详解
然而,在多进程环境下,进程之间的全局变量是无法共享的,因为每个进程都有自己独立的内存空间。
python多进程 主进程和子进程间共享和不共享全局变量实例
在设计多进程程序时,应谨慎处理全局变量,确保正确同步和通信,以避免数据竞争和死锁等问题。
NI-LabVIEW共享变量
#### 六、单进程共享变量单进程共享变量主要用于在同一个VI的不同循环之间或同一应用实例中的不同VI之间传递数据。
进程共享的例子
总之,进程间通信是软件开发中的重要技术,win32 API提供的共享全局变量是一种直接且实用的方法,但需注意同步问题。


Java SE
