2015-12-26 60 views
-5

的我公司目前有以下代碼:創建一個線程,循環

String [] names = {"Fred","Perry","Dave","Tom"}; 
for (String s: names) {   
Threads greetings = new Threads(s); 
} 

而且這工作得很好 - 但是我在做什麼是指派弗雷德」,‘佩裏’,‘戴維’,‘湯姆’ 。所有的問候

什麼我希望做的是以下

greetings0 = Tom 
greetings1 = Perry 
greetings2 = Dave 
greetings3 = Tom 

這將意味着我可以在以後運行greetings.start(); greetings1.start()等在自己的同一時間線程

+6

那麼'線程'不'線程'。我們可以看到一些編譯的代碼嗎? – markspace

+0

我改進了問題,因爲它不能清除 – Ingram

+0

如果你真的*必須擁有這些變量名,那麼你不能在循環中這樣做。你*應該*使用一個數組或列表(如Josh的答案中所建議的),因爲這可以讓你使用循環並且使代碼更簡單。 – Krease

回答

1

您需要一個Thread對象列表,每個Thread對象都有指定的名稱。您正嘗試創建不可能的動態變量名稱。以下是如何遍歷名稱並將每個命名的線程添加到列表。

我希望這是你正在尋找的。在你的問題描述中,你對問候,問候1,問候2,問候3的要求有點不清楚。

List<Thread> threads = new ArrayList<>(); 
    String [] names = {"Fred","Perry","Dave","Tom"}; 
    for (String s : names){   
     threads.add(new Thread(s)); 
    } 

編輯:既然你說你會永遠只能有4條祝福,那麼你可以這樣做:

Thread greeting = new Thread("Fred"); 
Thread greeting1 = new Thread("Perry"); 
Thread greeting2 = new Thread("Dave"); 
Thread greeting3 = new Thread("Tom"); 

您還可以,如果你想保持他們出於某種原因列表做到這一點:

List<Thread> threads = new ArrayList<>(); 
String[] names = { "Fred", "Perry", "Dave", "Tom" }; 
for(String s : names) 
{ 
    threads.add(new Thread(s)); 
} 
Thread greeting = threads.get(0); 
Thread greeting1 = threads.get(1); 
Thread greeting2 = threads.get(2); 
Thread greeting3 = threads.get(3); 
+0

你好喬希不是我想要的,但那是我沒有正確解釋的錯。我將改進我的問題 – Ingram

+0

你有沒有看看更新 – Ingram

+0

你是否總是準備4個問候? –