我有两个static ArrayList
,分别包含名字和姓氏。如何使用两个线程按顺序读取和打印名字+姓氏?
答案 0 :(得分:2)
由于您无法确定哪个线程将按什么顺序运行,因此您无法确定。第一个线程运行3次点击并打印3个名字而不打印任何姓氏。
如果你以某种方式让线程每回合运行一次(比如线程1打印1个名字,然后等待线程2打印姓氏),那么它们在实践中基本上变成了1个线程,所以没有必要有两个线程。
无论如何我认为可以创建一个返回name + surname的同步方法,并增加一个计数器以记住它在数组上的位置:
class TheClass {
int i = -1;
synchronized String getNameSurmame() {
i++;
return arraylist1.get(i) + " " + arraylist2.get(i);
}
//create two threads that call above method and print...
}
ps:闻起来像是糟糕的家庭作业。老师为什么要求学生做坏事?