面试官有问题就是想要有返回值的线程怎么办
public class CallableDemo implements Callable线程池的种类{ @Override public String call() throws Exception { int priority = Thread.currentThread().getPriority(); System.out.println(priority); return "线程执行"; } public static void main(String[] args) throws ExecutionException, InterruptedException { //1种实现 FutureTask futureTask = new FutureTask<>(new CallableDemo()); new Thread(futureTask).start(); String s = futureTask.get(); System.out.println(s); //线程池的使用 ExecutorService executorService = Executors.newFixedThreadPool(2); Future> submit = executorService.submit(new CallableDemo()); Object o = submit.get(); System.out.println(o.toString()); executorService.shutdown(); } }
public class ThreadPool { public static void main(String[] args) { ExecutorService executorService = Executors.newCachedThreadPool(); ExecutorService executor = Executors.newFixedThreadPool(1); ScheduledExecutorService s = Executors.newScheduledThreadPool(5); for (int i = 0; i < 3;i++) { s.schedule(()-> {System.out.println("123"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } },2, TimeUnit.SECONDS); } ExecutorService executorService1 = Executors.newSingleThreadExecutor(); for (int i = 0; i < 3;i++) { executorService1.submit(()-> {System.out.println("99999"); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } }); } } }
new ThreadPoolExecutor(); //这个可以私底下看线程池都要哪些参数 让后根据构造什么的进行设置 最好找个线程池工具类然后使用就完了 个人比较懒
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)