线程中方法睡眠对执行线程的影响
发布日期:2024-04-25 21:45:45 浏览次数:1 分类:技术文章

本文共 1630 字,大约阅读时间需要 5 分钟。

package com.rmls.asyncfuture;import com.rmls.exception.SleepUtils;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.function.BiConsumer;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Supplier;/** * @author R·ML·S * @create 2022/9/3 13:59 */public class FutureTest4 {    public static void main(String[] args) throws Exception {        supplyAsync();        SleepUtils.sleep(3);        System.out.println("我是main");    }    public static void supplyAsync() throws ExecutionException, InterruptedException {        CompletableFuture
supplyAsync = CompletableFuture.supplyAsync(new Supplier
() { @Override public String get() { System.out.println(Thread.currentThread().getName() + "--supplyAsync"); //SleepUtils.sleep(1);//这个地方执行睡眠的话这里就是线程池执行当前线程,不然就是主线程执行 //System.out.println("1/0 = " + 1/0); return "success1"; } }); supplyAsync.thenAccept(new Consumer
() { @Override public void accept(String s) { System.out.println(Thread.currentThread().getName() + "-1-s = " + s); } }); supplyAsync.thenAccept(new Consumer
() { @Override public void accept(String s) { System.out.println(Thread.currentThread().getName() + "-2-s = " + s); } }); }}

打开SleepUtils.sleep(1)

 不打开SleepUtils.sleep(1)

 两次执行的线程不一样,据说可能是控制台打印的原因造成的,但是理论上应该是线程池来执行,问题待解决.....

转载地址:https://blog.csdn.net/qq_50907269/article/details/126681450 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:线程中的sleep方法
下一篇:线程中断机制

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月19日 12时22分12秒