楼主:
lueichun (no anonymous)
2018-12-15 12:30:42我写了一段存取静态变量的code:
public class SetConnectionsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
......
public static List<Connection> list = new ArrayList<>();
}
然后我透过多执行绪,取得connection物件,并写入上面那个arrayList:
SetConnectionForMultiThread[] smtArray = new SetConnectionForMultiThread[200];
Thread[] thrArray = new Thread[200];
int j = 0;
for(int i = 0;i<200;i++){
smtArray[j] =
new SetConnectionsForMultiThread();
thrArray[j] = new Thread(smtArray[j]);
thrArray[j].start();
j++;
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
然后在SetConnectionForMultiThread这个class里:
public class SetConnectionForMultiThread implements Runnable{
public void run(){
......
SetConnectionsServlet.list.add(connection);
}
}
作者:
ssccg (23)
2018-12-15 13:14:00没有差,不是其他地方写错就是判断有没有加的方法是错的另外会被多个thread存取的list需要synchronize
作者:
gasbomb (虚空雷神兽)
2018-12-15 13:16:00原本class底下写一个addList()给其他class用比较妥当吧
作者: AI3767 (AIIA) 2018-12-15 22:38:00
我写一个测试是ok的, 但,你有两个不同类别名的 Multi
作者:
pttworld (批踢踢世界)
2018-12-16 13:21:00贴文是手误吗,循环跑的j根本没加1啊i跑到200,可是j根本没动吧
作者: AI3767 (AIIA) 2018-12-16 23:44:00
SetConnectionForMultiThread vs. SetConnections...