Thread[] threads = new Thread[numThreadsToCreate];
for (int i = 0; i < threads.length; i++) {
threads[i] = new Thread(yourRunnable);
threads[i].start();
}
上面是一种使用数组动态创建线程的方法。但我想使用hashmap创建线程,因为我想随时创建它(所以没有循环)并想要跟踪线程。所以想到使用密钥和&amp; hashmap的元素功能。
HashMap<String, Queue_Inserter> threadHash = new HashMap<>();
这里我创建了hashmap。 Queue_Inserter是我想要使用的线程类的名称。如果我通常创建线程,这就是它的工作原理。
Queue_Inserter insert = new Queue_Inserter("Insert", queueHash, mainConfig, keyName);
insert.start();
我想要线程的那些参数。 queueHash是另一个hashmap,mainConfig是JSONObject。 我已经尝试了这一点,我不知道如何在此之后传递参数。请帮忙。
以下是线程类:
public class Queue_Inserter implements Runnable {
private Thread t;
private String threadName;
HashMap<String, ConcurrentLinkedQueue<JSONObject>> queueHash = new HashMap<>();
ConcurrentLinkedQueue<JSONObject> queue = new ConcurrentLinkedQueue<>();
JSONObject config;
public Queue_Inserter(String name, HashMap<String, ConcurrentLinkedQueue<JSONObject>> queueHash, JSONObject config, String keyName){
threadName = name;
this.queueHash = queueHash;
this.config = config;
}
@Override
public void run() {
}
public void start (){
if (t == null){
t = new Thread (this, threadName);
t.start ();
}
}
}