異步編程總結

java現存的異步編程大致分爲兩種

通過回調方式控制實現


public static void callback() throws InterruptedException, ExecutionException {
		CompletableFuture<String> resultFuture = CompletableFuture.supplyAsync(() -> {

			System.out.println("callback" + ":" + Thread.currentThread().getName());
			try {
				Thread.sleep(3000);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("completableFuture complete");

			return "hello completablefuture";
		});
		System.out.println(" main thread complete");
		// 回調獲取執行結果 thenAccept使用同一線程執行任務,並獲取結果,thenAcceptAsync使用不同線程

		resultFuture.thenAcceptAsync((m) -> {
			System.out.println("callback:" + m + ":" + Thread.currentThread());
			System.out.println("Get Result by Back Function ");
		});

		System.out.println(" ========");
		//resultFuture.get();
		//System.out.println("------------ " + resultFuture.get());
	}


actor模型

Actor模型=數據+行爲+消息。

Actor模型內部的狀態由自己的行爲維護,外部線程不能直接調用對象的行爲,必須通過消息才能激發行爲,這樣就保證Actor內部數據只有被自己修改。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章