1. 程式人生 > >Java實現執行緒的3種方式

Java實現執行緒的3種方式

package com.main;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Main {

    public static void main(String[] args) {
        // write your code here
        Thread1 thread1 = new Thread1();
        thread1.start();

        Thread2 thread2 = new Thread2();
        new Thread(thread2).start();

        ExecutorService executorService = Executors.newSingleThreadExecutor();
        Future<String> future = executorService.submit(new Thread3());
        try {
            System.out.println(future.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        executorService.shutdown();

//        Thread3 thread3 = new Thread3();
//        new Thread(thread3).start();  //錯誤的
    }
}

//implements Runnable
//extends Thread
//implements Callable<String>

package com.main;

/**
 * Title: Thread1
 * Description:
 *
 * @date 2017/12/4 10:44
 */
public class Thread1 extends Thread {
    @Override
    public void run() {
        System.out.println("extends Thread");
    }
}

package com.main;

/**
 * Title: Thread2
 * Description:
 *
 * @date 2017/12/4 11:34
 */
public class Thread2 implements Runnable {
    @Override
    public void run() {
        System.out.println("implements Runnable");
    }
}

package com.main;

import java.util.concurrent.Callable;

/**
 * Title: Thread3
 * Description:
 *
 * @date 2017/12/4 13:37
 */
public class Thread3 implements Callable<String> {
    @Override
    public String call() throws Exception {
        return "implements Callable<String>";
    }
}


無對應的建構函式

相關推薦

Java執行3實現方法

Java中的多執行緒有三種實現方式:1.繼承Thread類,重寫run方法。Thread本質上也是一個實現了Runnable的例項,他代表一個執行緒的例項,並且啟動執行緒的唯一方法就是通過Thread類的start方法。2.實現Runnable介面,並實現該介面的run()

Java啟動執行方式總結

先檢視jdk幫助文件,這麼進行描述執行緒:執行緒是程式中的執行執行緒,可以由jvm來執行一個或者多個執行緒。方法1:繼承Thread 類 重寫run方法即可如下程式碼:public class Treadtest {//主方法public static void main(S

Java實現執行3方式

package com.main; import java.util.concurrent.ExecutionException; import java.util.concurrent.Exe

java實現執行的兩方式

第一種: new Thread(){}.start();這表示呼叫Thread 子類物件的 run 方法, new Thread(){}表示一個Thread 的匿名子類的例項物件,子類加上 run 方法後的程式碼如下:new Thread(){public void run(){}}.s

java實現執行間通訊的四方式

本文主要針對JAVA多執行緒中執行緒之間的通訊方式進行分析解釋,主要以程式碼結合文字的方式來討論執行緒間的通訊。 synchronized同步 public class MyObject { synchronized public void m

執行3常用的實現方式

1. 執行緒有幾種實現方法?說出來。 1. 繼承Thread類 萬物皆物件,那麼執行緒也是物件,物件就應該能夠抽取其公共特性封裝成為類,使用類可以例項化多個物件,那麼實現執行緒的第一種方式就是繼承Thread類的方式。繼承Thread類是最簡單的一種實

Java執行2.9.實現執行的常用方式-匿名內部類

實現執行緒的常用方式-匿名內部類 1、匿名內部類的格式 匿名內部類的格式。 本質:是該類或者介面的子類物件。 new 類名或者介面名() { 重寫方法; }; 2、實現執行緒的常用

Java執行建立的方式:繼承thread類與實現Runnable介面

Java中執行緒的建立有兩種方式: 1.  通過繼承Thread類,重寫Thread的run()方法,將執行緒執行的邏輯放在其中 2.  通過實現Runnable介面,例項化Thread類     在實際應用中,我們經常用到多執行緒,如車站的售票系統,車站的

Java執行之—Synchronized方式和CAS方式實現執行安全效能對比

效能比較猜想 1.大膽假設 在設計試驗方法之前,針對Synchronized和CAS兩種方式的特點,我們先來思考一下兩種方式效率如何? 首先,我們在回顧一下兩種方式是如何保證執行緒安全的。Synchronized方式通過大家應該很熟悉,他的行為非常悲觀,只要有一個執行緒進

三個執行順序迴圈執行3方式

第一種方式:使用Object的wait和notifyAll方法 package printABC.method1; //第一種方法,使用Object的wait和notifyAll方法 public class TestPrint { static int count =

java多線程3方式

run current java se 自己 cut 了解 itl detail pan Java多線程實現方式主要有三種:繼承Thread類、實現Runnable接口、使用ExecutorService、Callable、Future實現有返回結果的多線程。其中前兩種方式

java實現同步的幾方式(總結)

副本 增刪改 否則 都是 fin ret 語義 value art 為何要使用同步? java允許多線程並發控制,當多個線程同時操作一個可共享的資源變量時(如數據的增刪改查), 將會導致數據不準確,相互之間產生沖突,因此加入同步鎖以避免在該線程沒有完成操

spring4+ThreadPoolTaskExecutor建立執行方式傳送郵件

百度雲程式碼下載地址包含測試用例 :點選後跳轉 ThreadService package com.konglingfu.service; public interface ThreadService extends Runnable{ public void se

一、多執行基礎概念、實現執行方法、中斷執行方法,以及執行狀態轉化

1、CPU核心數和執行緒數的關係 1:1的關係,引入超執行緒之後,就是1:2 2、cpu時間輪轉機制,即RR排程 3、程序和執行緒 程序:程式執行資源分配最小單位,程序內部有多個執行緒,多個執行緒之間會共享程序資源 執行緒:CPU排程的最小單位 4、並行和併發

java實現執行間的通訊

本文章旨在記錄java執行緒之間通訊的使用方法(學習為主),文中涉及的程式碼非原創。 來源:http://wingjay.com 如何讓兩個執行緒同時執行? public class threadTest { public static void main(String

java執行3:關鍵字synchronized取得的鎖都是物件鎖,而不是把一段程式碼或者方法(函式)當作鎖

java多執行緒3:關鍵字synchronized取得的鎖都是物件鎖,而不是把一段程式碼或者方法(函式)當作鎖 a.當多個執行緒訪問同一個物件的時候,哪個執行緒先執行帶synchronized關鍵字的方法,哪個執行緒就該方法所屬物件的鎖Lock,那麼其他物件就智慧呈等待狀態。但是如果多個執行緒訪

Java實現克隆的三方式

1. 淺克隆      2. 深克隆     3. 利用序列化實現深克隆 1、淺複製(淺克隆)這種淺複製,其實也就是把被複制的這個物件的一些變數值拿過來了。最後生成student2還是一個新的物件。 public class

java執行3 thread中的靜態方法

轉自:http://www.cnblogs.com/xrq730/p/4851344.html     Thread類中的靜態方法 Thread類中的靜態方法表示操作的執行緒是"正在執行靜態方法所在的程式碼塊的執行緒"。為什麼Thread類中要有靜態方法,這樣就能

java執行常用建立方式

1 繼承Thread類重寫run方法 class Thread111 extends Thread{ @Override public void run() { System.out.println("thread1"); } } public class Thread1 {

Java執行—兩賣票

public class MyThread1 extends Thread{ private int ticket=10; public void run() { for(int i=0;i