在Java中,主线程是可以修改子线程的数据的。下面是一种常见的方法:
public class SharedData { private int data; public int getData() { return data; } public void setData(int data) { this.data = data; } } public class MainThread { public static void main(String[] args) { SharedData sharedData = new SharedData(); // 创建子线程,并将共享数据对象作为参数传递 Thread thread = new Thread(new ChildThread(sharedData)); // 启动子线程 thread.start(); // 主线程修改共享数据 sharedData.setData(10); } } public class ChildThread implements Runnable { private SharedData sharedData; public ChildThread(SharedData sharedData) { this.sharedData = sharedData; } @Override public void run() { // 子线程读取共享数据 int data = sharedData.getData(); // 子线程修改共享数据 sharedData.setData(data * 2); } } 通过这种方式,主线程可以修改子线程的数据。但需要注意的是,当主线程修改共享数据后,子线程可能还没有执行到修改数据的代码,因此需要考虑同步的问题,以确保数据的正确性。