2012-12-25 50 views
1

我有一个函数可以创建多个线程。对于每个线程,构造函数都需要一个来自不同类的对象,所以我首先创建这个类的对象,然后创建线。下面的代码(修改为简化示例)创建一个数组,如果线程在Java中并运行

public static void createThread (int n) { 
     for(int i=0;i<n;i++){ 
     someClass obj=new someClass(i); 
     ThreadClass myThread=new ThreadClass(obj); 
     myThread.run(); 
     } 

这里的问题是,我真的看不到线程正在随机运行。我正在run()上打印它们中的每一个,我发现它们按顺序显示。这有什么不对吗?我应该以不同方式运行吗?

感谢

+5

使用myThread.start(),而不是myThread.run()。 –

+0

将对象添加到列表中并随机调用它们 – 2012-12-25 20:53:19

+0

什么是“ThreadClass”? – Cratylus

回答

9

使用Thread.start()而非Thread.run()。使用run方法只是在同一个线程中调用该方法,而start方法实际上会创建一个新线程并在该线程内调用run方法。

我假设“随机”,你实际上是交错。这应该导致这样的结果。

+0

但他在'ThreadClass'上调用'run'而不是'Thread'。 – Cratylus

+1

@Cratylus ..根据OP的解释和他的代码,几乎可以清楚看到他的ThreadClass扩展了Thread或者实现了Runnable。 –

+0

是的,你是正确的ThreadClass扩展线程。我用开始()并成功,谢谢! – Avrum

相关问题