Java模擬耗時任務非同步執行
說明:耗時任務開啟單獨執行緒處理,任務執行緒處理完畢通知主執行緒
1、回撥介面定義
public interface ResponseCallBack {
public void printMsg(String msg);
}
2、模擬耗時任務執行緒
public class TestMain { public static void main(String[] args){ ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(new TestThread(new ResponseCallBack() { @Override public void printMsg(String msg) { System.out.println("print message: " + msg); } })); executorService.shutdown(); } } class TestThread implements Runnable { private ResponseCallBack responseCallBack; public TestThread(ResponseCallBack responseCallBack) { this.responseCallBack = responseCallBack; } @Override public void run() { try { System.out.println(Thread.currentThread().getName() + " start execute"); Thread.sleep(3000); // 耗時任務 System.out.println(Thread.currentThread().getName() + " end execute"); this.responseCallBack.printMsg("Hello Call Back"); // 耗時任務執行完後,通知主執行緒 } catch (InterruptedException e) { e.printStackTrace(); } } }
相關推薦
Java模擬耗時任務非同步執行
說明:耗時任務開啟單獨執行緒處理,任務執行緒處理完畢通知主執行緒 1、回撥介面定義 public interface ResponseCallBack { public void printMsg(String msg); } 2、模擬耗時任務執行緒 public
php 執行耗時任務 後臺執行
lib pan fun spl nbsp ESS finish controls 耗時任務 // 你要跳轉的url $url = "http://www.baidu.com/"; // 如果使用的是php-fpm if(function_exists(‘fa
Java CompletableFuture:allOf等待所有非同步執行緒任務結束
private void method() throws ExecutionException, InterruptedException { CompletableFuture<String> f1 = CompletableFuture.supplyAsync(()
Java CompletableFuture組合拼裝非同步執行緒任務(2)
Java CompletableFuture組合拼裝非同步執行緒任務 private void seq() throws ExecutionException, InterruptedException { System.out.println("時間1:"
Java非同步執行任務常用方式FutureTask和ExecutorService
1,ExecutorService結合線程池package com.asyn; import java.util.Date; import java.util.concurrent.ExecutorS
java 非同步任務佇列執行--需要注意的地方
參照1寫的非同步任務佇列過程中,發現一些java基礎知識掌握不夠。 1)Iterable 類的forEach方法和for迴圈方法的不同: try { List<Future<Object>> futures = exe
Java定時任務:利用java Timer類實現定時執行任務的功能
lpad 虛擬 觀察 exce 就是 set ring 構造 trac 一、概述 在java中實現定時執行任務的功能,主要用到兩個類,Timer和TimerTask類。其中Timer是用來在一個後臺線程按指定的計劃來執行指定的任務。 TimerTask一個抽象類,它的子類代
Django框架上使用Celery非同步執行任務
使用Django框架程式設計時, 由於框架的封裝限制,在沒有編寫底層程式碼的情況下,要把一段程式碼放到一個新的程序裡去執行,我們就會使用非同步執行任務的包Celery。 虛擬環境安裝celery pip install celery 一般把耗時的函式放在任務之中去執行,以傳送簡訊為
IMM服務(智慧媒體管理)通過Notify查詢非同步任務的執行結果
IMM服務(智慧媒體管理)通過Notify查詢非同步任務的執行結果 在使用智慧媒體管理的過程中,我們可能碰到一些大的文件的轉換,當我們需要知道結果的時候,一直輪詢 GetOfficeConversionTask介面去獲取任務狀態其實是浪費時間的。其實IMM服務提供任務結果非同步反向通知的功能,今天我們就使用
java:Map集合模擬鬥地主,多執行緒模擬搶地主 例項
原始碼如下: package selfpractice.day4; import java.util.*; //多執行緒模擬搶地,重點程式碼位於loot()方法內 public class Practice_Poker { public static void main(S
java模擬多執行緒http請求
package test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import
29-非同步任務提交執行架構
非同步任務提交執行架構 類關係圖 示例:執行緒池提交Runnable任務 示例:執行緒池提交Callable任務 Exec
java開發定時任務執行時間
定時任務執行時間配置詳解 Seconds Minutes Hours Day-of-month Month Day-of-Week Year 秒 分 &
Fork/Join框架(四)非同步執行任務
宣告:本文是《 Java 7 Concurrency Cookbook 》的第五章,作者: Javier Fernández González 譯者:許巧輝 校對:方騰飛 非同步執行任務 當你在ForkJoinPool中執行ForkJoinTask時,你可以使用同步或非同步方式來實現。
(十七)java併發程式設計--任務執行之執行緒池的使用
大多數併發程式圍繞著”任務執行”來構造的: 任務通常是一些抽象的且離散的工作單元。通過把一個用程式的共工作分解到多個任務中,可以簡化程式的組織結構,提供一種自然的事務邊界來優化錯誤恢復過程,以及提供一種自然的工作結構來提升併發性。 1 線上程中執行任務
如何寫 執行耗時任務的、可隨時立即退出的函式 呢?
如題。 稍微解釋下,因為有可能有人會誤會:放新執行緒裡面去不就可以了?這沒有解決問題。如此的話,你那個執行緒函式怎麼寫?或者執行緒函式裡呼叫的某個任務函式怎麼寫?總之,多執行緒雖然總是出現在這些問題的解決方案中,但不是多執行緒解決了這個問題。嗯……不知道說清楚了沒? 目前我心裡的答案只有這一種模式
JAVA學習之路(多執行緒)---模擬售票(細解)
首先看題目描述: 假設有火車票100張,建立4個執行緒模擬4個售票點,每100ms售出一張,打印出售票過程,格式如下: 視窗3:賣出第100張票 視窗4:賣出第99張票 ............ ............ 簡單的思路就是建立一個類,首先肯定要去繼承Thread。開啟執行
Java多執行緒之建立任務和執行緒
Runnable建立執行緒 任務就是物件。為了建立任務,必須首先為任務定義一個類。任務類必須實現Runnable介面。Runnable介面非常簡單,它只包含一個run方法。需要實現這個方法來告訴系統執行緒將如何執行。開發一個任務類的模板如圖29-2a所示。
Java多執行緒--非同步執行框架Executor
Eexecutor作為靈活且強大的非同步執行框架,其支援多種不同型別的任務執行策略,提供了一種標準的方法將任務的提交過程和執行過程解耦開發,基於生產者-消費者模式,其提交任務的執行緒相當於生產者,執行任務的執行緒相當於消費者,並用Runnable來表示任務,Execu
統計執行緒池所有任務的執行總耗時
ExecutorService executor = Executors.newFixedThreadPool(10); long start = System.currentTimeMillis(); for (int i =