天天看点

关于多线程的两个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);
	}
           

继续阅读