『壹』 java for循環執行500個休眠一段時間

public static void main(String[] args) throws InterruptedException {

for (int i = 0; i <500; i++) {//i從零開始,
if(i == 499){//等於499時就已經是第500次了
Thread.sleep(5000);//java中的線程,中間的參數可以自己定義,單位是毫秒,1000毫秒等於一秒,所以現在是當i執行到500次時,休息五秒
}
}
}

『貳』 java的for循環中像暫停.1s應該怎麼寫

你用線程sleep就可以了:
Thread.sleep(100);//停止0.1s

『叄』 java線程for循環沒有循環完成就停止了,這是為什麼

多線程需要來基礎學好點。源在來開發,否則總有莫名其妙的事情冒出來。而自己無法解釋。
你這個問題很簡單。
你要main主線程1秒後輸出list集合數據。在你代碼中這寫法本身是錯誤的,因為你有2個子線程,有鎖,安全地往list中加2千個數據,卻每次要等待1毫秒,估算2千數據你程序的加完需要2秒多時間,在1秒後,子線程還沒有結束,大概1千個數據還沒加完呢,你主線程就輸出了當前數據。肯定結果不對。哪來的2千個數據呢。你說循環沒完成就停止了,說法完全錯誤。。。
你要main主線程輸出list集合數據。正確操作應該是:
Thread t1 = ...;
t1.start();
t2也是如此。
最後main線程下面,輸出list數據前加2行代碼
t1.join();
t2.join();
然後在列印list。
join方法意思很簡單。就是等待線程結束後,我再繼續。main線程等待了2個子線程都結束後,即保證數據全部進list後,列印結果。

『肆』 java sleep()用法

th1.sleep(10); 這是讓th1線程暫停10毫秒

如果你想啟動th1的話
th1.start();
當調用了start方法就代表這個線程開始啟動

『伍』 JAVA for循環比如我的長度是10000,每循環到500個的時候休眠一段時間,接著500*n+1開始執行

for(int i=1;i<=長度;i++){
if(i%500==0){
Thread.sleep(100);// 睡眠100毫秒
}

}

『陸』 java for循環中的sleep

sleep(int ms); //這個ms是毫秒,1000沒有錯。
以下代碼是每秒打出一個a.
for(int i = 0; i < 10; i++){
System.out.print("a");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

『柒』 java中的sleep和wait的區別

這兩個方法主要來源是,sleep用於線程式控制制,而wait用於線程間的通信,與wait配套的方法還有notify和notifyAll.

區別一:
sleep是Thread類的方法,是線程用來 控制自身流程的,比如有一個要報時的線程,每一秒中列印出一個時間,那麼我就需要在print方法前面加上一個sleep讓自己每隔一秒執行一次。就像個鬧鍾一樣。
wait是Object類的方法,用來線程間的通信,這個方法會使當前擁有該對象鎖的進程等待知道其他線程調用notify方法時再醒來,不過你也可以給他指定一個時間,自動醒來。這個方法主要是用走不同線程之間的調度的。

區別二 :
關於鎖的釋放 ,在這里假設大家已經知道了鎖的概念及其意義。調用sleep方法不會釋放鎖(自己的感覺是sleep方法本來就是和鎖沒有關系的,因為他是一個線程用於管理自己的方法,不涉及線程通信)
JDK 7 中的解釋:
「public static void sleep(long millis)
throws InterruptedException

Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds, subject to the precision and accuracy of system timers and schelers.The thread does not lose ownership of any monitors.

public final void wait() throws InterruptedException

Causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object. In other words, this method behaves exactly as if it simply performs the call wait(0).The current thread must own this object's monitor. The thread releases ownership of this monitor and waits until another thread notifies threads waiting on this object's monitor to wake up either through a call to the notify method the notifyAll method. The thread then waits until it can re-obtain ownership of the monitor and resumes execution.「

調用wait方法會釋放當前線程的鎖(其實線程間的通信是靠對象來管理的,所有操作一個對象的線程是這個對象通過自己的wait方法來管理的,就好像這個對象是電視機,三個人是三個線程,那麼電視機的遙控器就是這個鎖,假如現在A拿著遙控器,電視機調用wait方法,那麼A就交出自己的遙控器,由jVM虛擬機調度,遙控器該交給誰。)【我想到一個好玩的例子:如果A拿遙控器的期間,他可以用自己的sleep每隔十分鍾調一次電視台,而在他調台休息的十分鍾期間,遙控器還在他的手上~】

區別三:
使用區域
由於wait函數的特殊意義,所以他是應該放在同步語句塊中的,這樣才有意義 。

注意:兩個方法都需要拋出異常

個人見解:有sleep和wait的第二個區別,引起了我對Java線程機制的一個疑問,目前還沒有看過JDk這方面的源碼(其實看了,是木有看懂),線程的同步管理,是不是由對象在調度,如果是對象在調度,那麼JDK 1.5新引入的ReentrantLock機制就比synchronized關鍵字更值得提倡。因為他更能反映出這么一個機制來。好多人不能理解wait和sleep的區別,我認為就是因為synchronized關鍵字的影響。當然自己還不懂JAVA的線程具體實現,留作疑問以後有時間繼續研究吧

『捌』 java,for循環執行5000條數據分別進行調用5個平台的API,然後保存到本地數

沒用過java,只用過c#,這類問題算是比較常見的生產和消費者問題,你搜索的時候也可以搜索java 生產消費者去查找,你的演算法應該算是效率很低的,如果一次只處理一條數據的話,對於不同的淘寶當當之類的是可以同時開不同線程的,另外當然也可以一次處理多條數據,效率就會更高一些。具體方法你網路一下java 生產消費者應該都可以找到答案。

『玖』 JAVA for循環比如我的長度是10000,每循環到500個的時候休眠一段時間,接著500*n+1開始執行

for(int i=1; i<=10000; i++){
///////////////////////////
if(i%500==0){
try{Thread.sleep(5000);}catch(InterruptedException ex){}
}
///////////////////
}