天天看點

關于多線程的兩個demo

關于多線程實作的兩種方式,一個Runnable,一個FutureTask和Callable配合使用。僅供大家參考。      
/**
	 * Runnable 沒有傳回值,隻是多線程執行
	 */
	@Test
	public void test1(){
//		線程池
		ThreadPoolExecutor executor = ThreadPool.getExecutorPool();
		Runnable runnable = new Runnable() {
			@Override
			public void run() {
//				寫邏輯
			}
		};
		executor.execute(runnable);
	}

	/**
	 * Callable和Callable 配合使用,當多線程模式有傳回值
	 */
	@Test
	public void test2() throws Exception {
		ThreadPoolExecutor executor = ThreadPool.getExecutorPool();
		FutureTask<JSONObject> futureTask = new FutureTask<>(new Callable<JSONObject>() {
			@Override
			public JSONObject call() throws Exception {
//				寫邏輯
				return null;
			}
		});
		executor.execute(futureTask);
		//延時接收參數,給目前線程10秒的時間,
		JSONObject jsonObject = futureTask.get(10, TimeUnit.SECONDS);
		System.out.println(jsonObject);
	}
           

繼續閱讀