久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

方法一:繼承Thread類創建線程

Java中實現多線程的一種方式是繼承Thread類。Thread類本質上是實現了Runnable接口的一個實例,代表一個線程的實例。啟動線程的唯一方法就是通過Thread類的start()方法。 通

Java中實現多線程的一種方式是繼承Thread類。Thread類本質上是實現了Runnable接口的一個實例,代表一個線程的實例。啟動線程的唯一方法就是通過Thread類的start()方法。

通過繼承Thread類并復寫run()方法,我們可以自定義線程內的操作邏輯。例如:

public class MyThread extends Thread {
    public void run() {
        ("()");
    }
}
MyThread myThread1  new MyThread();
MyThread myThread2  new MyThread();
();
();

方法二:實現Runnable接口創建線程

如果自己的類已經繼承了其他類,則無法直接繼承Thread類。此時,可以實現Runnable接口來創建線程。

public class MyThread extends OtherClass implements Runnable {
    public void run() {
        ("()");
    }
}
MyThread myThread  new MyThread();
Thread thread  new Thread(myThread);
();

方法三:實現Callable接口通過FutureTask包裝器來創建線程

如果希望線程執行完畢后返回結果,可以使用Callable接口配合FutureTask包裝器來創建線程。

public class SomeCallable extends OtherClass implements Callable {
    @Override
    public V call() throws Exception {
        // TODO Auto-generated method stub
        return null;
    }
}
Callable oneCallable  new SomeCallable();
FutureTask oneTask  new FutureTask(oneCallable);
Thread oneThread  new Thread(oneTask);
();

方法四:使用ExecutorService、Callable、Future實現有返回結果的線程

ExecutorService、Callable、Future是JDK中實現多線程的一套接口,其中Callable接口用于定義有返回值的任務。通過將Callable任務提交給ExecutorService線程池,并使用Future對象獲取任務的返回結果,就可以實現有返回結果的多線程。

import *;
import ;
import ;
import ;
@SuppressWarnings("unchecked")
public class Test {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ("----程序開始運行----");
        Date date1  new Date();
        int taskSize  5;
        ExecutorService pool  (taskSize);
        List> list  new ArrayList>();
        for (int i  0; i < taskSize; i  ) {
            Callable c  new MyCallable(i   " ");
            Future f  (c);
            (f);
        }
        ();
        for (Future f : list) {
            (">>>>>"   ().toString());
        }
        Date date2  new Date();
        ("----程序結束運行----,程序運行時間【"  
                (() - ())   "毫秒】");
    }
}
class MyCallable implements Callable {
    private String taskNum;
    MyCallable(String taskNum) {
        this.taskNum  taskNum;
    }
    public Object call() throws Exception {
        (">>>>>"   taskNum   "任務啟動");
        Date dateTmp1  new Date();
        (1000);
        Date dateTmp2  new Date();
        long time  () - ();
        (">>>>>"   taskNum   "任務終止");
        return taskNum   "任務返回運行結果,當前任務時間【"   time   "毫秒】";
    }
}
                    

                    
                    

                    
標簽:
主站蜘蛛池模板: 珲春市| 通渭县| 阿克| 绥宁县| 西和县| 宁化县| 长白| 攀枝花市| 绥化市| 阳谷县| 双桥区| 共和县| 绥阳县| 灵璧县| 庆安县| 安丘市| 彭州市| 皮山县| 孙吴县| 光泽县| 揭阳市| 深泽县| 威海市| 高台县| 石阡县| 合肥市| 聊城市| 修武县| 咸宁市| 汝州市| 庐江县| 万荣县| 鲁山县| 梅州市| 马鞍山市| 喀什市| 崇礼县| 甘洛县| 威海市| 永嘉县| 涞源县|