国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Java 并發編程中如何創建線程

瀏覽:9日期:2022-08-15 15:51:52
簡介

線程是基本的調度單位,它被包含在進程之中,是進程中的實際運作單位,它本身是不會獨立存在。一個進程至少有一個線程,進程中的多個線程共享進程的資源。

Java中創建線程的方式有多種如繼承Thread類、實現Runnable接口、實現Callable接口以及使用線程池的方式,線程池將在后面文章中單獨介紹,這里先介紹另外三種方式。

繼承Thread類

優點:在run方法里可以用this獲取到當前線程。

缺點:由于Java不支持多繼承,所以如果繼承了Thread類后就不能再繼承其他類。

public class MyThread extends Thread { /** * 線程要執行的任務 */ @Override public void run() { System.out.println('do something...'); } public static void main(String[] args) {//創建線程 MyThread myThread = new MyThread();//啟動線程 myThread.start(); }}實現Runnable接口

優點:實現Runnable接口后不影響繼承其他類,以及有利于多個線程資源共享。

缺點:獲取當前線程需要調用Thread.currentThread()。

public class MyThread implements Runnable { /** * 線程要執行的任務 */ @Override public void run() { System.out.println('do something...'); } public static void main(String[] args) {//創建兩個線程,并指定相同的任務Thread thread1 = new Thread(new MyThread()); Thread thread2 = new Thread(new MyThread());//啟動線程 thread1.start(); thread2.start(); }}實現Callable接口

優缺點類似于實現Runnable接口,但是實現Callable接口可以有返回值。

public class MyThread implements Callable<String> { /** * 線程要執行的任務,并且具有返回值 */ @Override public String call() throws Exception { System.out.println('do something...'); Thread.sleep(3000); return '我是返回值'; } public static void main(String[] args) throws ExecutionException, InterruptedException {//創建異步任務 FutureTask<String> futureTask = new FutureTask(new MyThread());//啟動線程 new Thread(futureTask).start();//阻塞等待線程執行完成并返回結果 String result = futureTask.get(); System.out.println(result); }}

以上就是Java 并發編程中如何創建線程的詳細內容,更多關于Java 創建線程的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 瓦房店市| 西藏| 阆中市| 吕梁市| 阳信县| 汉阴县| 八宿县| 友谊县| 博罗县| 南江县| 防城港市| 渝北区| 罗平县| 留坝县| 上虞市| 绥宁县| 禹城市| 长泰县| 鄂温| 内丘县| 伊川县| 武邑县| 疏附县| 南华县| 鄂托克前旗| 高碑店市| 武穴市| 仁怀市| 甘德县| 井陉县| 卢龙县| 理塘县| 明水县| 高雄县| 西乡县| 天津市| 恩施市| 阳江市| 香格里拉县| 甘肃省| 长兴县|