异步执行

Posted 赵钱富贵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步执行相关的知识,希望对你有一定的参考价值。

public void execute()
        //来一个线程池
        ExecutorService executor = Executors.newFixedThreadPool(2);
        CompletableFuture<Integer> future1= CompletableFuture.supplyAsync(new Supplier<Integer>()
        
            @Override
            public Integer get() 
                for(int i=0;i<10;i++) 
                    System.out.println("task1:"+i);
                    sleep(1000);
                
                
                return 333;
            
        ,executor);
        
        
        CompletableFuture<Integer> future2 =CompletableFuture.supplyAsync(new Supplier<Integer>()
        
            @Override
            public Integer get() 
                for(int i=0;i<10;i++) 
                    System.out.println("task2:"+i);
                    sleep(1000);
                
                return 666;
            
        ,executor);
        
        //等待所有任务执行结束
        CompletableFuture<Void> all= CompletableFuture.allOf(future1,future2);
        all.thenAccept(e->
            //关闭线程池
            executor.shutdown();
            System.out.println("执行结束");
           
        );


    static void sleep(long millis) 
        try 
            Thread.sleep(millis);
        
        catch (InterruptedException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        
    



以上是关于异步执行的主要内容,如果未能解决你的问题,请参考以下文章

在Android中啥是异步执行

JS怎么判断异步是不是执行完成

简单说下异步执行原理。

06 Spring 异步执行,任务调度(@Schedule、@Async)

关于异步执行

java队列实现异步执行