導航:首頁 > 編程語言 > 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線程的重啟相關的資料

熱點內容
shell循環文件名 瀏覽:602
照片3d建模源代碼 瀏覽:434
西安iPhone6升級內存 瀏覽:84
小學生的編程的課是學什麼的 瀏覽:114
就業下載什麼app 瀏覽:191
個人配置文件重定向到D盤 瀏覽:22
js屏幕寬度 瀏覽:312
sql查找某列重復資料庫 瀏覽:48
智行火車票用微信支付 瀏覽:262
網路定價過程哪些內容發生變化 瀏覽:200
dubbo服務提供者的配置文件 瀏覽:182
win8系統如何壓縮文件 瀏覽:875
網站怎麼上傳代碼 瀏覽:4
java日誌的好處 瀏覽:103
武漢奇米網路怎麼樣 瀏覽:689
筆記本如何恢復原來數據 瀏覽:76
charles怎麼抓取js 瀏覽:580
網路智豹破解版 瀏覽:424
pdf文件一鍵轉藍 瀏覽:563
2014yy釣魚網站源碼 瀏覽:835

友情鏈接