一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

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

java控制線程運行

2019-11-19 14:16Java教程網 JAVA教程

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

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

2、線程有創建、可運行、運行中、阻塞、死亡5個狀態。

創建:使用new運算符創建一個線程

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

運行中狀態:執行線程的run方法

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

死亡狀態:線程結束

3、傳統方法的安全問題

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

4、如何控制線程的運行

舉個例子,假如某個文件的傳輸需要10s,讓其傳輸到某個時刻暫停傳輸,然后繼續,到傳完為止。使用實現Runnable的方法完成,首先是文件傳輸的Runnable類

代碼如下:

 

復制代碼代碼如下:

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、運行,控制臺上將打印文件傳輸的模擬過程。可以看出,如果將該類對象以線程運行,while循環會執行10次后退出。
但是,需要在某個時刻(如5秒后)暫停線程運行(如1分鐘),但又不能使用Thread的相關函數,該怎么辦?

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

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

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

如何讓run方法結束呢,在run方法中有一個while循環,將改循環的標志由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();
 }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 2048论坛永久入口 原创合集 | 日本最新伦中文字幕 | 美女在线看永久免费网址 | 欧美cosplay极品video | 亚洲国产高清视频 | 大胸美女被c | 欧美一区二区日韩一区二区 | 亚洲欧美色综合图小说 | 久久久久久久99精品免费观看 | caoporn国产 | 久久伊人免费 | 隔壁老王国产在线精品 | 免费激情小视频 | 色综合天天综合网看在线影院 | 国产偷啪视频一区 | 国产精品资源在线观看网站 | 精品一久久香蕉国产线看播放 | 催眠白丝舞蹈老师小说 | 午夜精品久久久久久久99蜜桃 | 亚洲九九爱 | 国产男女乱淫真视频全程播放 | 亚洲欧美在线免费观看 | 欧美国产在线视频 | 久久国产加勒比精品无码 | 精灵之森高清在线 | 狠狠色婷婷日日综合五月 | 姐姐不~不可以动漫在线观看 | aaa免费看 | 5151hh四虎国产精品 | 精品国产免费观看一区高清 | 极品美女写真菠萝蜜视频 | 99re精品在线 | 国产激情久久久久影院小草 | 青青青视频免费观看 | 4p高h三男一女 | 久久精品人人做人人爽97 | 日本精品一区二区在线播放 | 国产精品成人亚洲 | 亚洲一区二区精品视频 | 91看片淫黄大片.在线天堂 | 国产小情侣自拍 |