導航:首頁 > 編程語言 > java線程的重啟

java線程的重啟

發布時間:2023-09-05 18:49:25

㈠ 如何實現java線程的暫停和重新啟用

JAVA中線程開始有start方法,暫停用sleep(time)方法,線程停止用stop方法,線程等待wait方法,java 中沒有線程重啟一說,只能說線程喚醒()或是notify方法,前一個notifyAll()方法是喚醒所有的已休眠或是等待狀態下的線程。具體的一種參數請參照JDK文檔。

㈡ java中通過wait()和notify()實現線程暫停和重啟,問題如下,求高手幫忙

wait並不是調用的那個線程被阻塞,是誰調用,誰被阻塞。

下邊是例子

importjava.awt.BorderLayout;
importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;

,Runnable{
privateTestThreadthread=null;

publicTestApp(){

JPanelbuttons=newJPanel();
FlowLayoutlayout=newFlowLayout(FlowLayout.CENTER);
buttons.setLayout(layout);
add(buttons,BorderLayout.NORTH);

JButtonbtn=newJButton("pause");
btn.addActionListener(this);
buttons.add(btn);

JLabellabel=newJLabel();
add(label,BorderLayout.CENTER);

setSize(800,600);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
thread=newTestThread(label);
thread.start();
}

publicstaticvoidmain(String[]args){
newTestApp();
}

publicvoidactionPerformed(ActionEvente){
JButtonbtn=(JButton)e.getSource();
if("pause".equals(btn.getText())){
btn.setText("start");
thread.callWait();
}else{
btn.setText("pause");
thread.call();
}
}

publicvoidrun(){

}
}

classTestThreadextendsThread{
privatebooleanisWait=false;
privateJLabellabe=null;

publicTestThread(JLabellabe){
this.labe=labe;
}

publicvoidrun(){
intindex=0;
while(true){
try{
if(isWait){
wait();
}
labe.setText(""+(++index));
sleep(500);
}catch(Exceptione){

}
}
}

(){
isWait=true;
}

publicsynchronizedvoidcall(){
isWait=false;
notify();
}
}

㈢ java 多線程 重啟

您好,線程停止了就結束了,所以你若想讓你一個線程停止了又能再重新開始,那隻能讓這個線程sleep。
如下一段代碼就可以實現你的需求了,希望你能看懂!!

package com.lxh.;

public class ThreadRestart extends Thread {

private static int i = 0;

@Override
public void run() {
while(true) {
// 這里用來判斷線程是否繼續停止,不執行代碼邏輯
if(i == 1) {
try {
sleep(100);
System.out.println("........");
continue;
} catch (InterruptedException e) {
e.printStackTrace();
}
}

// 假設這是你線程中的一段邏輯
{
System.out.println("Happy Happy....");
}
}
}

public static void main(String[] args) throws Exception {
ThreadRestart threadTest = new ThreadRestart();
threadTest.start();

for (int j = 0; j < 20; j++) {
// 假設執行如下一段代碼邏輯時,讓線程threadTest執行
{
i = 0;
Thread.sleep(2000);
}

// 假設執行如下的一段代碼邏輯後,讓線程threadTest停止執行
{
i = 1;
Thread.sleep(2000);
}
}

// 退出整個程序
System.exit(0);
}
}

㈣ JAVA如何重新啟用一個線程

java實現多線程有2種方法:1擴展java.lang.Thread類;2實現java.lang.Runnable介面 下面舉個例子,實現Runnable,來實現多線程 public class DoSomething implements Runnable { //實現Runnable介面 public void run() { // 實現run方法 for (int i = 0; i < 5; i++) { // 重復5次 System.out.println("次線程do something"); try { Thread.sleep(1000); //休眠1秒 } catch (Exception e) {} } } public static void main(String[] args) { DoSomething dothing = new DoSomething(); Thread t1 = new Thread(dothing); t1.start(); //這里就是樓主提的問題,啟動線程,執行上面寫的run()方法 for (int i = 0; i < 5; i++) { //主線程 System.out.println("主線程do something"); try { Thread.sleep(1000); //休眠1秒 } catch (Exception e) {} } } }

㈤ java線程發生異常時怎麼重新啟動這個線程

for循環,try catch語句,在catch里截獲異常,判斷已經發生異常的次數,少於等於3遍,currentThread.interrupt() 大於3停止當前線程。

㈥ JAVA 線程重新啟動問題

這個run函數的主體是一個while循環,既然沒有break語句,那線程就不會結束。捕獲異常以後會繼續下一次循環。
更不需要start,因為已經start了。。。

㈦ JAVA中如何讓一個線程意外終止後重新啟動

新建一個線程,一直循環,每隔5分鍾調用那6個Tread的isAlive()方法進行判斷,如果返回為false則調用它們的start()方法。

㈧ 在java中什麼辦法可以讓線程停止然後再重新啟動它

1.你可以用布爾值來抄控制是否讓襲線程運行。例:while(boolean isLive){} 當isLive為true線程就運行,否則不運行。
2.你可以用對象。例:while(Object o != null)當對象存在的時候線程就運行,否則不運行!
3.你可以用wait()方法來讓線程等待,然後用notify()、notifyAll()在適當的時候喚醒線程、或者喚醒所有在些等待的線程!
例:一個挺不錯的例子---吃饅頭和做饅頭。
一個線程做饅頭,做好了放在籃子里(容量為10)。
一個線程吃饅頭,從籃子里拿饅頭吃(如果籃里有饅頭)。
還有一點就是為了看到明顯的等待效果,用一個隨機數來決定做和吃的速度。這樣就不會行成做一個,吃一個,籃子永遠裝不滿的不理想效果!(最好就是做稍快於吃)
這時,當籃子滿了,你就應該調用wait()方法來讓做的線程等待,讓吃的線程將籃子騰出空間放饅頭。同時,吃的線程也應該通知做的線程可以做饅頭了(就應該調用notify()來喚醒做的線程)。
這個例子應該就是你想要的「停止」後再重新啟動吧!
如果你說的是完全停止(死了),那就不行了!

閱讀全文

與java線程的重啟相關的資料

熱點內容
U盤啟動載入資源文件失敗 瀏覽:459
怎樣把ug的pdf文件導入cad 瀏覽:148
c盤文件刪不了怎麼辦 瀏覽:248
win7無線網路禁用 瀏覽:455
如何把電腦文件夾圖片放置在一起 瀏覽:702
如何對訪談法進行數據分析 瀏覽:388
國土三調文件用什麼軟體什麼打開 瀏覽:651
數控銑床編程特點是什麼 瀏覽:119
飛鴿傳輸一次能傳多少文件 瀏覽:488
手機照片許可權怎麼設置密碼 瀏覽:341
es文件瀏覽器怎麼隱藏 瀏覽:649
刪除的文件為什麼恢復 瀏覽:314
血緣詛咒怎麼升級 瀏覽:604
文件分享到微信怎麼操作 瀏覽:393
tmx文件trados 瀏覽:704
大數據與會計選課怎麼選 瀏覽:684
網路的不穩定因素有哪些 瀏覽:950
獵豹瀏覽器javascript 瀏覽:723
哪個列印軟體保存數據時間長 瀏覽:873
ps合並後源文件 瀏覽:74

友情鏈接