android 两个线程访问同一个列表代码
时间: 2023-10-03 15:08:07 浏览: 34
下面是一个简单的示例代码,用于演示如何在 Android 中使用两个线程访问同一个列表:
```
public class MainActivity extends AppCompatActivity {
private List<String> mList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 启动第一个线程
new Thread(new Runnable() {
@Override
public void run() {
// 在第一个线程中向列表中添加数据
synchronized (mList) {
mList.add("hello");
mList.add("world");
Log.d("Thread 1", "Added items to list");
}
}
}).start();
// 启动第二个线程
new Thread(new Runnable() {
@Override
public void run() {
// 在第二个线程中遍历列表并打印数据
synchronized (mList) {
for (String item : mList) {
Log.d("Thread 2", "List item: " + item);
}
}
}
}).start();
}
}
```
在这个示例代码中,我们创建了一个包含两个元素的列表,并使用两个线程对其进行操作。第一个线程向列表中添加数据,而第二个线程遍历列表并打印数据。
在每个线程中,我们使用`synchronized`关键字来锁定列表,以确保在任何给定时间只有一个线程可以访问列表。这可以避免线程之间的竞争条件和数据不一致性问题。
请注意,实际应用中的线程访问同一个列表的情况可能更加复杂,因此需要仔细考虑线程安全和同步问题。