1

我有一个创建多个线程的函数。对于每个线程,构造函数从不同的类中获取一个对象,所以我必须首先创建这个类的一个对象,然后再创建线程。代码下方(为简化示例而修改)

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() 上打印它们中的每一个,我看到它们按顺序显示。这有什么问题吗?我应该以不同的方式运行它吗?

谢谢

4

1 回答 1

9

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

我假设“随机”,您实际上是指交错。这应该导致那个结果。

于 2012-12-25T20:53:31.427 回答