【虚拟线程】java21虚拟线程用法 限流等

【虚拟线程】java21虚拟线程用法 限流等

java 复制代码
//创建虚拟线程工厂
ThreadFactory virtualThreadFactory = Thread.ofVirtual()
        .name("虚拟线程-", 0)
        .factory();


//每次最多只能执行10个
Semaphore 限流 = new Semaphore(10);

List<Thread> threads = new ArrayList<>();

for(int i = 1; i <= 100; i++){

    Runnable runnable = () -> {
    
    
        ThreadUtil.sleep(1000 * 5);
        //释放许可,以供其他线程使用
        限流.release();
     };


    Thread factoryThread = virtualThreadFactory.newThread(runnable);

    //申请许可,如果当前没有许可了,则阻塞直至其他线程 release 以释放
    限流.acquire();
    //开始
    factoryThread.start()
    threads.add(factoryThread);
}

//等待都执行完成
        for (Thread thread : threads) {
            try {
                thread.join();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
相关推荐
CHANG_THE_WORLD18 分钟前
C++并发编程指南04
开发语言·c++
字节全栈_mMD29 分钟前
Flink Connector 写入 Iceberg 流程源码解析_confluent icebergsinkconnector
java·大数据·flink
powershell 与 api36 分钟前
C#,shell32 + 调用控制面板项(.Cpl)实现“新建快捷方式对话框”(全网首发)
开发语言·windows·c#·.net
SomeB1oody40 分钟前
【Rust自学】19.2. 高级trait:关联类型、默认泛型参数和运算符重载、完全限定语法、supertrait和newtype
开发语言·后端·rust
小园子的小菜42 分钟前
RocketMQ中的NameServer主要数据结构
java·中间件·rocketmq·java-rocketmq
平凡君1 小时前
缓存的今生今世
java·spring·缓存
山茶花开时。2 小时前
[SAP ABAP] 静态断点的使用
开发语言·sap·abap
纠结哥_Shrek2 小时前
Java 有很多常用的库
java·开发语言
爱是小小的癌2 小时前
Java-数据结构-优先级队列(堆)
java·前端·数据结构
天乐敲代码2 小时前
JAVASE入门十五脚-网络TCP,UDP,,Lambda
java