在運行中的線程可通過調(diào)用sleep()方法使之停止執(zhí)行,線程由運行態(tài)進行等待態(tài),睡眠時間到,線程會再次自動調(diào)用start()方法恢復(fù)運行。
sleep()方法聲明如下,參數(shù)millis指定睡眠的毫秒數(shù)。
public static void sleep(long millis) throws InterruptedException
注意:在調(diào)用此方法時需要進行異常處理。
滾動字即是可以滾動的字,如下視頻所示:
如上視頻,字是滾動起來的,但實際上,它只是看起來像動畫一樣在滾動,在寫代碼時,主要是通過循環(huán)和睡眠來實現(xiàn),其完整代碼如下:
//滾動字
import java.awt.*;
import javax.swing.*;
public class ThreadLearn extends JFrame implements Runnable{
/**
*
*/
private static final longserialVersionUID = 1L;
private JTextField text;
public ThreadLearn(){
super("多線程學習");
this.setBounds(200,200,480,300);
this.setVisible(true);
text=new JTextField("移動啦,左右移動啦,今天是2019年啦,加油加油,努力努力再努力喲!");
this.getContentPane().add(text);
}
@Override
public void run() {
// TODO Auto-generatedmethod stub
while(true){//循環(huán),無限次
String s=text.getText();
text.setText(s.substring(1)+s.substring(0, 1));//字的移動相當于每次都將第一個字移到最后一個
try{
Thread.sleep(100);//進程休眠,休眠時間結(jié)束會自動調(diào)用start(),啟動線程
}
catch(Exception e){
e.getStackTrace();
}
}
}
public static void main(String args[]){
ThreadLearn target=new ThreadLearn();
Thread thread=new Thread(target);
thread.start();
}
}
可以通過修改sleep()的參數(shù)改變文字移動的速度。