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

熱點內容
更改程序圖標c語言 瀏覽:629
網路電視偷停怎麼辦 瀏覽:418
linux連接ftp 瀏覽:512
es文件瀏覽器視頻筆記 瀏覽:874
mac無法打開描述文件 瀏覽:134
什麼軟體打文件 瀏覽:53
資料庫無數據變成0 瀏覽:899
名企筆試如何刷編程題 瀏覽:49
js跳到頁面某地 瀏覽:550
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648

友情鏈接