我有一个创建多个线程的函数。对于每个线程,构造函数从另一个类获取一个对象,因此我首先创建该类的对象,然后创建该线程。代码下方(为了简化示例而修改)
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()上打印它们中的每一个,我看到它们按顺序显示。这有什么不对吗?我应该以不同的方式运行吗?
由于
答案 0 :(得分:9)
使用Thread.start()
而不是Thread.run()
。使用run
方法只需在同一个线程中调用该方法,而start
方法实际上创建一个新线程并在该线程中调用run
方法。
我假设“随机”,你实际上是指交错。这应该会导致结果。