+ -
当前位置:首页 → 问答吧 → 将Thread结果加入arraylist

将Thread结果加入arraylist

时间:2011-12-13

来源:互联网

各位大大
我有一个蛮基本的问题
我想要利用subclass thread去做一些事 然后做完后把message加入一个arraylist里面
然后print出来
可是这些事情做完后 却没有print出来
是哪里出错呢??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class A
{  
  ArrayList x = new ArrayList;
  ......
  ......
  B s = new B();
  s.start;
  C k = new C();
  k.start;
  for(int j=0; j<x.size; j++){
    System.out.println(x.get(j).toString);
  }
  
  public class B extends Thread
  {  ......
    ......
    String result;
    public void run()
    {  
      result = "success";
      x.add(result);
    }
  }
 
  public class C extends Thread
  {  ......
    ......
    String result;
    public void run()
    {  
      result = "success";
      x.add(result);
    }
  }
}
 

作者: michaeltseng   发布时间: 2011-12-13

你有三个执行绪(主执行绪A

作者: Saber_Servant   发布时间: 2011-12-13

还有其他方法吗?
事实上我不是想要等待B & C的thread 处理完才往下继续
如果用join的话会得要等到B和C都处理结束后A才会往下继续执行
这样就失去我原来用Thread 去做B 和 C 的事情的意义了

作者: michaeltseng   发布时间: 2011-12-13

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class A
{ ArrayList x = new ArrayList; ...... ...... B s = new B(); s.start; C k = new C(); k.start;
  while(s.isRinning || k.isRunning) { for(int j=0; j<x.size; j++){ System.out.println(x.get(j).toString); } }
 
public class B { boolean isRunning = false;
}
 
public class C { boolean isRunning = false;
}


给个概念 实际使用时还要考虑一些同步问题

作者: Saber_Servant   发布时间: 2011-12-13

热门下载

更多