java程序暫停
㈠ java中如何暫停一個程序
1.
Thread.sleep(4000);
暫停4000毫秒,也就是四秒,如果像無限暫停那就把4000改成一個足夠大的數.
* 注意引入Thread的包,Eclipse或Intellij會自動提示 (我桐塵迅忘了在哪個包了~
2.
可兄友以用java.util.Scanner來要求局此用戶輸入東西以達到暫停效果,
具體使用方法請網路
㈡ JAVA中如何讓程序暫停
看到的回答確實有點不明不白的。樓主估計已經搞定了吧,應該是這么做的
在你想要暫停的地方加上下面這段程序
try{
Thread.sleep(10000);
}catch(Exception e){
}
不需要添加什麼包哦,sleep裡面的參數就是你要停止的時間,單位是毫秒。
㈢ Java如何讓正在運行的線程暫停一段時間
可以使用Thread類的Sleep()方法讓線程暫停一段時間。需要注意的是,這並不會讓線程終止,一旦從休眠中喚醒線程,線程的狀態將會被改變為Runnable,並且根據線程調度,它將得到執行。
可以使用thread.wait(隱虛)隱敏方法來讓線程暫停灶攜燃一段時間,wait方法裡面填寫的是暫停的時間的長度,一毫秒為單位,
㈣ 求教高手:java中如何暫停一個線程中的任務,在以後的可以恢復之前任務的執行。
可以用以下幾種方法:
interrupt():中斷線程
stop():強迫線程停止執行。用 Thread.stop 來終止線程將釋放它已經鎖定的所有監視器(作為沿堆棧向上傳播的未檢查 ThreadDeath 異常的一個自然後果)。如果以前受這些監視器保護的任何對象都處於一種不一致的狀態,則損壞的對象將對其他線程可見,這有可能導致任意的行為。
yield()只是使當前線程重新回到可執行狀態,所以執行yield()的線程有可能在進入到可執行狀態後馬上又被執行。yield()只能使同優先順序的線程有執行的機會。----這句是重點
3.書上說yelid()是禮讓,是讓當前執行線程停下來給別的線程資源, 又說沒有任何機制保證會這樣。----------沒有任何機制保證執行yield()的線程一定會把資源讓給其它線程。打個比方:兩個人搶東西,A搶到了B沒有,再把東西放回去重搶,說不定還是A搶到B沒有。沒有任何機制保證放回去後B一定能搶到
sleep方法使線程睡眠,但是到一定毫秒數時會自動到cpu中等待
wait方法使線程等待,但是不會自動到cpu中等待,要通過notify或者notifyall方法進行喚醒。
以上是讓線程等待的方法,你可以選擇適合你程序的方法。
㈤ 我是一個剛接觸JAVA不久的新手,遇到一個程序中需要一個暫停/繼續按鈕,不知道如何實現起功能,希望你能幫幫
在你的類中定義:
JButton pausecontBtn; // 暫停/繼續按鈕
boolean paused = true; // 是否已經暫停,保存當前按鈕的狀態
然後在構造函數中:
pausecontBtn = new JButton("Continue");
pausecontBtn.addActionListener(new ActionListener() { /猛遲/ 使用了匿名內部類
@Override
void actionPerformed(ActionEvent e) {
// 這里添加按鈕的響應代碼
if (paused) {
// 這里實現繼續的功能
pausecontBtn.setText("返知灶Continue");
paused = false;
} else {
// 這里實現暫停的功能
pausecontBtn.setText("Pause"漏扮);
paused = true;
}
}
});
㈥ java中如何實現暫停程序,單擊按鈕繼續
1、所謂「暫停」,就是程序暫等待。
2、在java中暫停,有幾種方法,如線程旦明wait或是sleep或是yield等,自己網路查一下這些方敏昌法的用模拿告法,就可以解決你的問題了~
試試吧
㈦ JAVA中如何控制線程的啟動與暫停
線程的狀態表示線程正在進行的活動以及在此時間段內所能完成的任務.線程有創建,可運行,運行中,阻塞,死亡五中狀態.一個具有生命的線程,總是處於這五種狀態之一:
1.創建狀態
使用new運算符創建一個線程後,該線程僅僅是一個空對象,系統沒有分配資源,稱該線程處於創建狀態(new thread)
2.可運行狀態
使用start()方法啟動一個線程後,系統為該線程分配了除CPU外的所需資源,使該線程處於可運行狀態(Runnable)
3.運行中狀態
Java運行系統通過調度選中一個Runnable的線程,使其佔有CPU並轉為運行中狀態(Running).此時,系統真正執行線程的run()方法.
4.阻塞狀態
一個正在運行的線程因某種原因不能繼續運行時,進入阻塞狀態(Blocked)
5.死亡狀態
線程結束後是死亡狀態(Dead)
創建線程和啟動線程並不相同,在一個線族殲洞程對新線程的Thread對象調用start()方法之前,這個新線程並沒有真正開始執行。Thread對象在其線程真正啟動之前就已經存在了,而且其線程退出之後仍然存在。這可以讓您控制或獲取關於已創建的線程的信息,即使線程還沒有啟動或已經完成了。
通常在構造器中通過start()啟動線程並不是好主意。這樣做,會把部分構造的對象暴露給新改慶的線程。如果對象擁有一個線程,那麼它應該提供一個啟動該線程的start()或init()方法,而不是從構造器中啟動它。
結束Java線程
Java線程會以以下三種方式之一結束:
Java線程到達其run()方法的末尾。
Java線程拋出一個未捕獲到的Exception或Error。
另一個Java線程調用一個棄用的stop()方法。棄用是指這些方法仍然存在,但是您不應該兆枯在新代碼中使用它們,並且應該盡量從現有代碼中除去它們。
當Java程序中的所有線程都完成時,程序就退出了。
㈧ java語句暫停
給你塵孝改了一下,在你所示的地方,加了一個線歲兄緩程。
---------------------------------------------------------------------------------------------------
public class xiancheng extends javax.swing.JFrame {
/** Creates new form xiancheng */
public xiancheng() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jButton1.setText("jButton1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
jButton1.setBounds(30, 40, 81, 25);
jButton2.setText("jButton2");
getContentPane().add(jButton2);
jButton2.setBounds(120, 100, 81, 25);
jButton2.setVisible(false);
jButton3.setText("jButton3");
getContentPane().add(jButton3);
jButton3.setBounds(190, 190, 81, 25);
jButton3.setVisible(false);
setMinimumSize(new java.awt.Dimension(300, 300));
pack();
}/乎模/ </editor-fold>
// GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jButton2.setVisible(true);
// Thread.sleep(5000);// -----在這里加線程暫停是沒用的!請問要如何解決這個問題
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
jButton3.setVisible(true);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new xiancheng().setVisible(true);
}
});
}
// GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
// End of variables declaration//GEN-END:variables
}