第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java在方法中不管程序有沒有執(zhí)行完,開啟新線程

java在方法中不管程序有沒有執(zhí)行完,開啟新線程

阿晨1998 2018-07-20 14:26:57
有一個文件轉換的程序,轉換大的word文檔比較慢,1分鐘之后,不管有沒有轉換完成,開啟一個新線程,開始轉換下一個文件,應該怎么寫。
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

首先把轉換文件的代碼封裝成一個類或者方法;
然后用定時器或者線程休眠執(zhí)行;
參考實現(xiàn):

 public void transform(File file){
 //轉換文件
 }

 public void execute(File[] files){
 for(File file: files){
 new Thread(){
 public void run(){
 transform(file);
 }
 }.start();
 Thread.sleep(1000*60);
 }
 }

具體參數(shù)和返回結果,自己調整
代碼未編譯,參考一下結構

查看完整回答
反對 回復 2018-07-26
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

創(chuàng)建一個線程任務。這個任務的作用是提交一個具體操作任務(即你的轉換動作)到線程池(或者你啟一個線程去處理)。然后再用線程池的定時任務機制去觸發(fā)創(chuàng)建任務。這樣就能達到每1分鐘創(chuàng)建一個轉換任務且不受轉換進度影響的目的了。

 final ScheduledExecutorService service = Executors.newScheduledThreadPool(10); // 線程池

        // 轉換任務
        final Runnable convertRun = new Runnable() {

            @Override
            public void run() {
                // 具體的轉換代碼
            }
        };

        // 提交任務
        Runnable createRun = new Runnable() {

            @Override
            public void run() {
                service.submit(convertRun);
                // 或者   new Thread(convertRun).start();// 不推薦這種
            }
        };
        // 這個方法更適合你的需求。但是如果用scheduleWithFixedDelay也是可以的。因為提交一個線程并不會花費多少時間
        service.scheduleAtFixedRate(createRun, 0, 1, TimeUnit.MINUTES);// 周期提交


查看完整回答
反對 回復 2018-07-26
  • 2 回答
  • 0 關注
  • 1069 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號