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

标签 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);
         myThread.run();
        }

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

谢谢

最佳答案

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

我假设“随机”是指交错。这应该会导致那个结果。

关于java - 如果在 java 中创建线程并运行,则创建一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033916/

相关文章:

java - android sax 解析器处理程序

java - java和php中的时间戳有什么区别?

java - 多线程环境下连接池超时问题

java - 字符串排列

java - 从 RequestBuilder 访问 JSON 响应

java - 不使用 Java 客户端库将视频上传到 YouTube Data API v3

Python 嵌入线程——避免死锁?

Java 8 流多线程

java - 迭代列表并将 Callables 提交到 ExecutorService

Python:我应该子类化 threading.Thread 吗?