Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果线程在java中运行,则创建一个数组_Java_Multithreading - Fatal编程技术网

如果线程在java中运行,则创建一个数组

如果线程在java中运行,则创建一个数组,java,multithreading,Java,Multithreading,我有一个创建多个线程的函数。对于每个线程,构造函数从不同的类中获取一个对象,因此我必须首先创建这个类的对象,然后创建线程。下面是为简化示例而修改的代码 public static void createThread (int n) { for(int i=0;i<n;i++){ someClass obj=new someClass(i); ThreadClass myThread=new ThreadClass(obj);

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

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();
        }
这里的问题是,我没有看到线程是随机运行的。我正在运行时打印它们中的每一个,我看到它们按顺序显示。这有什么问题吗?我应该以不同的方式运行它吗

谢谢

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

我假设你所说的随机,实际上是指交错。这将导致该结果。

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


我假设你所说的随机,实际上是指交错。这应该会导致这种结果。

使用myThread.start,而不是myThread.run。将对象添加到列表并随机调用使用myThread.start,而不是myThread.run。将对象添加到列表并调用它们randomly@Cratylus.. 从OP的解释和他的代码中,几乎可以清楚地看出,他的ThreadClass要么扩展Thread,要么实现Runnable。我用开始和成功,谢谢@克拉提卢斯。。从OP的解释和他的代码中,几乎可以清楚地看出,他的ThreadClass要么扩展Thread,要么实现Runnable。我用开始和成功,谢谢!!!