我很好奇,如果可以安全地在for循環中做一個空的while循環,以便阻止它繼續到x爲真,在for循環中做一個空的while循環是否安全?
例如(更新爲下載爲例):
string[] links = new string[3] {"http://url.com/download1.rar", "http://url.com/download2.rar", "http://url.com/download3.rar"};
public void download(String link) {
// download link
x = false;
}
再後來某處
for (int i; i < links.length; i++) {
download(links[i]);
x = true;
while (x) {
// Do nothing so the for loop basically freezes until download is finished
}
// Do something else or just end it here and continue the loop
}
請注意:這是一個簡單的例子,下載已經完全無關的問題,我只是試圖幫助你幫助我理解這一點
或者有沒有更好的方法來完成這個?
編輯:編輯的代碼,以顯示我在想什麼
我認爲它會被卡在那裏,嘗試添加一個'突破; '語句來確保它會離開while循環 –
這是什麼?這種結構對於多線程應用程序是有意義的,但多線程有很多更好的方法來等待單獨的工作完成:互斥量,信號量等 – Gobra
當這段代碼永遠循環時,你期望什麼代碼會讓x爲真?代碼是如何運行的? –