1. 程式人生 > >【Java】三種方式建立多執行緒

【Java】三種方式建立多執行緒

通過整合Thread類實現多執行緒

package TreadLearning;

/**
 * 建立執行緒方法1
 * 利用繼承Thread類+重寫run方法
 * new物件然後呼叫start()方法(不能直接呼叫run方法)
 * @author 袁盛桐
 *
 */
public class TreadExtend extends Thread{

	@Override
	public void run() {
		for(int i=0; i<100; i++) {
			System.out.println("A"+i);
		}
	}
	
	public static void main(String[] args) {
		TreadExtend a = new TreadExtend();
		TreadExtend2 b = new TreadExtend2();
		a.start();
		b.start();
	}
}

class TreadExtend2 extends Thread{

	@Override
	public void run() {
		for(int i=0; i<100; i++) {
			System.out.println("B"+i);
		}
	}
	
	
}

重寫runable介面建立多執行緒 

package TreadLearning;

/**
 * 建立執行緒方法2
 * 1.實現runnable介面+重寫run方法
 * 2.啟動多執行緒 使用靜態代理
 *   (1)建立真實角色
 *   (2)建立代理角色+真實角色引用
 *   (3)呼叫start()來啟動執行緒
 *   
 *好處(1)避免單繼承的侷限性
 * (2)便於共享資源
 * @author 袁盛桐
 *
 */
public class ThreadImpRunable implements Runnable{

	@Override
	public void run() {
		for(int i=0; i<100; i++) {
			System.out.println("A"+i);
		}
	}
	
	public static void main(String[] args) {
		//(1)建立真實角色
		ThreadImpRunable demo = new ThreadImpRunable();
		//(2)建立代理角色+真實角色引用
		Thread proxy = new Thread(demo);
		//(3)呼叫start()來啟動執行緒
		proxy.start();//成為其中一條執行緒路徑
		
		for(int i=0; i<100; i++) {
			System.out.println("B"+i);
		}
	}
}

重寫callable介面建立多執行緒

package TreadLearning;

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

public class Call {
	public static void main(String[] args) throws InterruptedException, ExecutionException {
		//建立執行緒
		ExecutorService ser =Executors.newFixedThreadPool(1);
		ThreadImpCallable demo = new ThreadImpCallable();
		//獲取值
		Future<Integer> result = ser.submit(demo);
		int num = result.get();
		System.out.println(num);
		//停止服務
		ser.shutdownNow();
	}
}

class ThreadImpCallable implements Callable<Integer>{
	
	@Override
	public Integer call() throws Exception {
		return 1000;
	}

}

相關推薦

Java方式建立執行

通過整合Thread類實現多執行緒 package TreadLearning; /** * 建立執行緒方法1 * 利用繼承Thread類+重寫run方法 * new物件然後呼叫start()方法(不能直接呼叫run方法) * @author 袁盛桐 * */

使用Lock,wait/notify,Semaphore方式實現執行通訊

java的多執行緒通訊有Lock,wait/notify,Semaphore三種方式,以一道常見面試題來簡單演示這三種多執行緒通訊方式。 兩個執行緒迴圈間隔列印指定內容,一個列印從1到52的數字,一個列印從A到Z的字母,列印輸出如下: 1 2 A 3 4 B ..

Android一、Progress進度條實現的方式:主執行實現,Service載入,動態建立

前言 更新版本,上傳資料到服務端,都是需要進度顯示的,Android進度顯示兩種方式 ProgressDialog 和 ProgressBar 新版本中ProgressDialog不被推薦使用,所以專案採用ProgressBar 分為三種實現方式: 1、MainAct

匿名內部類在執行Callable中的使用小結

對於匿名內部類的使用它是存在一個缺陷的,就是它僅能被使用一次,建立匿名內部類時它會立即建立一個該類的例項,該類的定義會立即消失,所以匿名內部類是不能夠被重複使用。對於上面的例項,如果我們需要對test()方法裡面內部類進行多次使用,建議重新定義類,而不是使用匿名內部類。

Thread實現&執行操作同一物件的互斥同步以及物件的同步&定時器Timer

多執行緒 程序 程序:(Process)是計算機中的程式關於某資料集合上的一次執行活動,是系統進行資源分配和排程的基本單位,是作業系統結構的基礎。在程序是程式的基本執行實體,在當代面向執行緒設計的計算機結構中,程序是執行緒的容器,程是程式的實體。 多執行緒:是指從

方式實現執行共享資源(典型的售票例子)

1、繼承Thread TestThread類 public class TestThread extends Thread{ private int ticket = 300; @Override public void run() { while(true){

使用兩方式編寫執行程式?

# 方案1 from threading import Thread import time class Sayhi(Thread): def __init__(self,name): super().__init__() self.name=na

Boostboost庫中thread執行詳解5——談談執行中斷

執行緒不是在任意時刻都可以被中斷的。如果將執行緒中函式中的sleep()睡眠等待去掉,那麼即使在主執行緒中呼叫interrupt()執行緒也不會被中斷。 thread庫預定義了若干個執行緒的中斷點,只有當執行緒執行到中斷點的時候才能被中斷,一個執行緒可以擁有任意多箇中斷點。

Boostboost庫中thread執行詳解3——細說lock_guard

boost::lock_guard可以說是一種比boost::unique_lock輕量級的lock, 簡單一些場景可以用它就行了。 看看它的原始碼也很簡單:template<typename Mutex> class lock_guard { private:

Boostboost庫中thread執行詳解1

1. 概述 執行緒就是,在同一程式同一時間內允許執行不同函式的離散處理佇列。 這使得一個長時間去進行某種特殊運算的函式在執行時不阻礙其他的函式變得十分重要。 執行緒實際上允許同時執行兩種函式,而這兩個函式不必相互等待。 一旦一個應用程式啟動,它僅包含一個預設執行緒。 此執行

C++VS2013配置C/C++執行使用環境

在用C語言做影象處理的過程中,經常會使用到多執行緒操作,對於沒有使用過的朋友們,或許還要折騰半天,今天這裡簡單總結一下配置方法: 1,下載pthread 的windows安裝包:http://sourceware.org/pthreads-win32/  至於版本,

CountDownLatch死迴圈檢測模板/執行重複測試模板

意義: CountDownLatch的一個作用是檢測死迴圈,因為死迴圈不容易復現,需要把一個程式執行多次。 有的同學會用指令碼迴圈執行,如果沒有linux環境,還得裝環境,有點麻煩。 所以想到直接用Java實現重複執行一段程式碼的功能。 注意: 0、其實,HashMap的

Boostboost庫中thread執行詳解1——thread入門與簡介

1. 概述 執行緒就是,在同一程式同一時間內允許執行不同函式的離散處理佇列。 這使得一個長時間去進行某種特殊運算的函式在執行時不阻礙其他的函式變得十分重要。 執行緒實際上允許同時執行兩種函式,而這兩個函式不必相互等待。一旦一個應用程式啟動,它僅包含一個預設執行緒。 此執

Java建立執行方式

Java實現多執行緒主要有3種方式。 第一、直接繼承Thread類,重寫run()方法; 第二、實現Runnable介面,實現run()方法。與直接繼承Thread相比,這種方法更利於多個執行緒對共享資源的使用; 第三、實現Callable介面,實現call方法,與實現Ru

建立執行方式

執行緒是指程序內部同時做的事情,比如在玩王者榮耀的時候,你可以同時攻擊英雄A和英雄B; 下面將此作為例子,引入三種建立多執行緒的方式; 例子思路:                  ①先建立英雄類(Hero)設定三個屬性:name(英雄名)、hp(英雄的血量)、dama

Java第十三天學習筆記~執行執行的狀態、建立執行的第二方式、同步程式碼塊、同步函式)

                                 多執行緒 執行緒的狀態 CPU的執行資格:可以被C

Android進度條方式實現自定義圓形進度條ProgressBar

總結了3種方法: 1.多張圖片切換 2.自定義顏色 3.旋轉自定義圖片 其它: Android自定義控制元件NumberCircleProgressBar(圓形進度條)的實現:點選開啟連結 橫線帶數字進度條:點選開啟連結

Java建立執行方法

Java多執行緒實現方式主要有三種:繼承Thread類、實現Runnable介面、使用ExecutorService、Callable、Future實現有返回結果的多執行緒。其中前兩種方式執行緒執行完後都沒有返回值,只有最後一種是帶返回值的。1、繼承Thread類實現多執行緒

方法讓你在I2C通信中同時和個從機通信

efi 抖動 萬能 stop ans ole println tran 正常 ref:http://tieba.baidu.com/p/3769008030對於不同地址的模塊就不用多說了,直接分別對其地址進行通信即可。那麽若拿到相同地址的模塊,或者直接是相同的多個模塊怎麽辦

Java建立執行的四方式

在進行講解執行緒的建立方式之前,首先了解下什麼是程序,什麼是執行緒,程序與執行緒之間的關係等 什麼是程序? 其實當一個程式進入記憶體執行時,就是一個程序,程序是處於執行中的程式,並且具有一定的獨立功能,程序是系統進行資源分配和排程的一個獨立單位,具有獨立性,動態性,併發性,這裡的獨立性指的是在系統中獨立存在,