Java 執行緒非同步程式設計透過建立非同步執行緒來實現,使用 submit() 方法建立並使用 get() 方法來取得任務結果。其優點包括提高應用程式效能、增加並發性和提高回應能力。
Java 執行緒非同步程式設計實作
簡介
##非同步程式設計是一種程式設計範式,允許程式在不等待結果的情況下繼續執行。在 Java 中,可以使用執行緒來實作非同步程式設計。建立非同步線程
要建立非同步線程,可以使用ExecutorService 介面及其
submit() 方法:
ExecutorService executor = Executors.newFixedThreadPool(10); Future<String> future = executor.submit(() -> { // 异步任务 return "任务结果"; });
submit() 方法傳回一個
Future 對象,它表示非同步任務的結果。
取得非同步任務結果
可以使用Future 物件的
get() 方法來取得非同步任務的結果:
String result = future.get();
get() 方法會阻塞線程,直到非同步任務完成。
實戰案例
非異步文件處理
假設我們有一個包含多行文字的文件,我們需要逐行處理它們。我們可以使用非同步執行緒並行處理檔案中的每一行:ExecutorService executor = Executors.newFixedThreadPool(10); try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) { List<Future<String>> futures = new ArrayList<>(); String line; while ((line = reader.readLine()) != null) { futures.add(executor.submit(() -> { // 处理每一行 return line.toUpperCase(); })); } List<String> results = new ArrayList<>(); for (Future<String> future : futures) { results.add(future.get()); } }
BufferedReader 讀取檔案中的每一行。對於每一行,我們都建立一個非同步任務來處理該行。然後,我們使用
get() 方法來取得每個任務的結果。
優點
以上是Java線程異步程式設計實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!