1. 程式人生 > >Java 建立執行緒的方法

Java 建立執行緒的方法

public class ThreadTest<V> {

    @org.junit.Test
    public void test() throws ExecutionException, InterruptedException {

        //繼承thread 實現
        MyThread myThread = new MyThread();
        myThread.start();


        //實現Runnable介面實現
        MyThread1 myThread1 = new MyThread1();
        Thread thread1 = new
Thread(myThread1); thread1.start(); //實現Callable 實現 Callable<V> oneCallable = new MyThread2<>(); FutureTask<V> oneTask = new FutureTask<V>(oneCallable); //FutureTask 是一個包裝類,它通過Callable建立,同時實現了Future 和Runnable 介面 Thread thread2 = new
Thread(oneTask); thread2.start(); /* 使用ExecutorService\Callable\Future 實現有返回結果的執行緒 這3個介面都屬於Executor框架.返回結果的執行緒是在JDK1.5中引入的 新特性. 可返回值的任務必須實現Callable 介面 執行Callable 任務後,可以獲取一個Future 物件, 在該物件上呼叫get 就可以獲取到Callable任務返回的物件 注意:get 方法時阻塞的,即:執行緒無返回結果,get方法會一直等待 再結合線程池介面ExecutorService 就可以實現有返回結果的多執行緒 */
int taskSize =5; //建立一個執行緒值 ExecutorService pool = Executors.newFixedThreadPool(taskSize); //建立有多個返回值的任務 List<Future> list = new ArrayList<Future>(); for(int i=0;i<taskSize;i++){ Callable c = new MyThread3<String>(i+" "); //執行任務並獲取Future物件 Future f = pool.submit(c); list.add(f); } //關閉執行緒池 pool.shutdown(); //獲取所有併發任務的執行結果 for(Future f :list){ System.out.println(f.get().toString()); } } } class MyThread extends Thread { public void run() { System.out.println("thread run"); } } class MyThread1 implements Runnable { @Override public void run() { System.out.println("thread run"); } } class MyThread2<V> implements Callable<V> { @Override public V call() throws Exception { System.out.println("thread run"); return null; } } class MyThread3<String> implements Callable<String> { //此處String 代表是泛型型別,而不是java.lang.String private String taskNum; MyThread3(String taskNum) { this.taskNum = taskNum; } @Override public String call() throws Exception { System.out.println(taskNum + "thread run"); long start = System.currentTimeMillis(); Thread.sleep(1000); long end = System.currentTimeMillis(); System.out.println(taskNum + "thread end"); return (String) (Long.toString( (end-start))+":"+taskNum); } }

相關推薦

Java建立執行方法

轉載自:https://www.cnblogs.com/3s540/p/7172146.html   Java使用Thread類代表執行緒,所有的執行緒物件都必須是Thread類或其子類的例項。Java可以用三種方式來建立執行緒,如下所示: 1)繼承Thread類建立執行緒 2)實現Runn

java建立執行的四種方法(轉)

java中建立執行緒的四種方法以及區別 Java使用Thread類代表執行緒,所有的執行緒物件都必須是Thread類或其子類的例項。Java可以用四種方式來建立執行緒,如下所示: 1)繼承Thread類建立執行緒 2)實現Runnable介面建立執行緒 3)使用Callable和Future建立執行緒

java 建立執行的三種方法

在java中使用Thread類代表執行緒,所有的執行緒物件都必須是Thread類或其子類的例項,建立執行緒有三種方式: 1.通過繼承Thread類建立執行緒; 2.通過實現Runnable介面建立執行緒; 3.通過使用Callable和Future建立執行緒。 建立執行緒demo

Java基礎之多執行之原理、實現方式及匿名內部類建立執行方法

一、概念 程序:作業系統當中正在執行的一個程式。例如正在執行一個QQ。 執行緒:程序之內多工的執行單位。例如迅雷當中正在下載的多個電影。 JVM當中:棧(Stack)記憶體是執行緒獨立的,堆(Heap)記憶體是執行緒共享的。 (1)Java程式執行的時候至少有兩個執行緒: 1)主

Java建立執行安全的方法

原文連結 譯者:秦建平 校對:方騰飛 首先來看一個問題: 下面這個方法是執行緒安全的嗎?如何才能讓這個方法變成執行緒安全的? public class MyCount { private static int counter = 0; public static int g

-1-5 java執行緒 概念 程序 執行緒區別聯絡 java建立執行緒方式 執行緒執行緒池概念 執行緒安全 同步 同步程式碼塊 Lock鎖 sleep()和wait()方法的區別 為什麼wait(),notify(),notifyAll()等方法都定義在O

 本文關鍵詞: java 多執行緒 概念 程序 執行緒區別聯絡 java建立執行緒方式 執行緒組 執行緒池概念 執行緒安全 同步 同步程式碼塊 Lock鎖  sleep()和wait()方法的區別 為什麼wait(),notify(),notifyAll()等方法都定義在Object類中 多執行緒

Java 建立執行池的四種方法

Java通過Executors提供四種執行緒池,分別為:newCachedThreadPool建立一個可快取執行緒池,如果執行緒池長度超過處理需要,可靈活回收空閒執行緒,若無可回收,則新建執行緒。newFixedThreadPool 建立一個定長執行緒池,可控制執行緒最大併發

Java 建立執行方法

public class ThreadTest<V> { @org.junit.Test public void test() throws ExecutionException, InterruptedException {

java建立執行的兩種方法

本人小白一枚,初學java。感覺java學起來非常自然,寫起程式來思路也很清晰,剛剛學完多執行緒程式設計一塊,所以想將一些比較重點的知識點寫下來,防止遺忘。 java中建立一個執行緒有兩種方法: 繼承Thread類,重寫run() 方法 實現 Runnab

Java建立執行的兩種方法比較

1 前言 Java提供了執行緒類Thread來建立多執行緒的程式,執行緒類和普通java類並沒有多大差別,只是執行緒類要麼繼承了Thread類,要麼實現了Runnable介面,這也引出了實現執行緒的兩種方式: 1、A extends Thread 2、

Java 建立執行方法2

Thread 類有個 registerNatives 本地方法,該方法主要的作用就是註冊一些本地方法供 Thread 類使用,如 start0(),stop0() 等等,可以說,所有操作本地執行緒的本地方法都是由它註冊的 . 這個方法放在一個 static 語句塊中,這就表

jvm之java建立執行導致記憶體異常

1。以下執行緒啟動,請注意儲存當前工作,因為jav的執行緒是對映到作業系統的核心執行緒上,下面程式碼執行,容易導致作業系統假死 會導致部署程式碼的缺失,執行以上程式會導致如下結果如: 請強制結束以下程序。 分析如下: java的執行緒執行是對映到作業系統的核心執行緒上的。

JAVA 建立執行ThreadDemo類

class Thread1 extends Thread{ public void run(){ //獲取當前執行緒名字 System.out.println(Thread.currentThread().getName()); } } class Thread2 extends

Java建立執行的三種方式

繼承Thread (1)定義Thread類的子類,重寫該類的run方法,該run方法的方法體就代表了執行緒要完成的任務。因此把run()方法稱為執行體。 (2)建立Thread子類的例項,即建立了執行緒物件。 (3)呼叫執行緒物件的start()方法來啟動該執行緒。

Java執行方法詳解

靜態方法 Thread Thread.currentThread() 該方法用於獲取當前執行緒物件,當我們用Runnable方式來實現run的時候,run中的this指向的不是執行緒物件,此時你要獲取

Java執行方法說明

簡單說明 博文中提到的"可參閱博文"還沒來得及寫,見諒! 靜態方法 Thread Thread.currentThread() 該方法用於獲取當前執行緒物件,當我們用Runnable方式來實現run的時候,run中的this指向的不是執行緒物件,此時你要獲取當前執行緒,

Java建立執行的三種方式以及優劣對比

Java使用Thread類代表執行緒,所有的執行緒物件都必須是Thread類或者其子類例項。每個執行緒的作用是完成一定的任務,實際上是執行一段程式流 #1. 繼承Thread類建立執行緒類     通過繼承Thread類來建立並啟動多執行緒的步驟如下: 定

Java建立執行的三種方式及其對比

Java中建立執行緒主要有三種方式: 一、繼承Thread類建立執行緒類 (1)定義Thread類的子類,並重寫該類的run方法,該run方法的方法體就代表了執行緒要完成的任務。因此把run()方法稱為執行體。 (2)建立Thread子類的例項,即建立了執行緒物

Java建立執行的4種方式及優缺點

目錄 1. 通過繼承Thread類實現 2. 通過實現Runnable介面實現 3. 通過lambda的方式實現 4. 通過Callable和Future建立執行緒  5. 通過繼承Thread類實現 程式碼展示  6. 通過實現Runnable介面實

Java 建立執行的三種方式及其對比

Java中建立執行緒主要有三種方式: 一、繼承Thread類建立執行緒類 (1)定義Thread類的子類,並重寫該類的run方法,該run方法的方法體就代表了執行緒要完成的任務。因此把run()方法稱為執行體。 (2)建立Thread子類的例項,即建立了執行緒物件。 (3)呼