激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java控制線程運行

java控制線程運行

2019-11-19 14:16Java教程網(wǎng) JAVA教程

這篇文章主要介紹了java控制線程運行,需要的朋友可以參考下

1、線程的控制很常見,如文件傳送到一半時,需要暫停文件傳送,或終止文件傳送,這實際上就是控制線程的運行。

2、線程有創(chuàng)建、可運行、運行中、阻塞、死亡5個狀態(tài)。

創(chuàng)建:使用new運算符創(chuàng)建一個線程

可運行:使用start方法啟動一個線程后,系統(tǒng)分配了資源

運行中狀態(tài):執(zhí)行線程的run方法

阻塞:運行的線程因為某種原因停止繼續(xù)運行

死亡狀態(tài):線程結(jié)束

3、傳統(tǒng)方法的安全問題

Thread的stop(),suspend(),resume(),destroy()方法,因為不安全,可能造成死鎖,已經(jīng)不再使用了。

4、如何控制線程的運行

舉個例子,假如某個文件的傳輸需要10s,讓其傳輸?shù)侥硞€時刻暫停傳輸,然后繼續(xù),到傳完為止。使用實現(xiàn)Runnable的方法完成,首先是文件傳輸?shù)腞unnable類

代碼如下:

 

復制代碼代碼如下:

public class ThreadControlTest1 implements Runnable
{
 private int percent = 0;
 public void run()
 {
  while(true)
  {
   System.out.println("傳送進度:"+ percent +"%");
   try
   {
    Thread.sleep(1000);
   }
   catch(Exception ex)
   {}
   percent += 10;
   if(percent == 100)
   {
    System.out.println("傳送完畢");
    break;
   }
  }
 }
 public static void main(String[] args)
 {
  ThreadControlTest1 ft = new ThreadControlTest1();
  Thread th = new Thread(ft);
  th.start();
 }

}

 

5、運行,控制臺上將打印文件傳輸?shù)哪M過程。可以看出,如果將該類對象以線程運行,while循環(huán)會執(zhí)行10次后退出。
但是,需要在某個時刻(如5秒后)暫停線程運行(如1分鐘),但又不能使用Thread的相關函數(shù),該怎么辦?

要解決這個問題,常見的方法如下:

1.當需要暫停時,干脆讓線程的run方法結(jié)束運行以釋放資源(實際上就是讓該線程永久結(jié)束)

2.線程需要繼續(xù)時,新開辟一個線程繼續(xù)工作

如何讓run方法結(jié)束呢,在run方法中有一個while循環(huán),將改循環(huán)的標志由true改為false即可。

6、上面的代碼可以改為如下:

 

復制代碼代碼如下:

public class ThreadControlTest1 implements Runnable
{
 private int percent = 0;
 private boolean isRun = true;
 public void run()
 {
  while(isRun)
  {
   System.out.println("傳送進度:"+ percent +"%");
   try
   {
    Thread.sleep(1000);
   }
   catch(Exception ex)
   {}
   percent += 10;
   if(percent == 100)
   {
    System.out.println("傳送完畢");
    break;
   }
  }
 }
 public static void main(String[] args) 
 {
  ThreadControlTest1 ft = new ThreadControlTest1();
  Thread th = new Thread(ft);
  th.start();
  try
  {
   Thread.sleep(5000);
  }catch(Exception ex)
  {}
  ft.isRun = false;
  System.out.println("暫停一分鐘");
  try
  {
   Thread.sleep(1000*60);
  }catch(Exception ex)
  {}
  ft.isRun = true;
  th = new Thread(ft);
  th.start();
 }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一本色道久久综合亚洲精品小说 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 国产激情精品一区二区三区 | 欧美在线中文字幕 | 成人做爰www免费看 欧美精品免费一区二区三区 | 99精品视频一区二区 | 7m视频成人精品分类 | 日韩视频一 | 日操操夜操操 | 久久久久无码国产精品一区 | 成人一级免费 | 一本色道久久综合亚洲精品图片 | 毛片免费观看视频 | 国产99久久久久久免费看农村 | 蜜桃网在线 | 看免费5xxaaa毛片 | 久久国产午夜 | 一色桃子av大全在线播放 | 久久99国产精品久久 | 中文字幕在线观看免费 | 黄色视屏免费在线观看 | 日韩在线欧美在线 | 亚洲啪啪| 香蕉久久久 | 羞羞的动漫在线观看 | 高清av在线| 色毛片| 日本不卡视频在线观看 | 久久国产精品久久精品国产演员表 | 免费在线观看成人av | av在线免费观看播放 | 操碰| 中文字幕在线观看网址 | 免费一级肉体全黄毛片 | 日本中文一级片 | 亚洲午夜久久久久 | 成人av一区二区免费播放 | 91精品国产91 | 久久影院一区二区三区 | 亚洲国产超高清a毛毛片 | 欧美精品第1页 |