当前位置: 首页 > news >正文

Java21虚拟线程完整用法

方式1
 Thread.startVirtualThread(new Task());
方式2
Thread virtualThread = Thread.ofVirtual().name("Virtual Thread").unstarted(new Task());
virtualThread.start();
方式3
Thread.ofVirtual().name("Virtual Thread").start(new Task());
方式4
ThreadFactory threadFactory = Thread.ofVirtual().name("Virtual Thread").factory();
threadFactory.newThread(new Task()).start();
方式5

单个虚拟虚拟等待后会立刻执行其他任务,普通线程则会等待,线程设置成1个就能看出来了。

-Djdk.virtualThreadScheduler.parallelism=1 -Djdk.virtualThreadScheduler.maxPoolSize=1
ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor();
for (int i = 0; i < 10000; i++) {executorService.submit(new Task2());
}

完整的demo


public class Main {public static void main(String[] args) throws IOException {// 方式1
//        Thread.startVirtualThread(new Task());// 方式2
//        Thread virtualThread = Thread.ofVirtual().name("Virtual Thread").unstarted(new Task());
//        virtualThread.start();// 方式3
//        Thread.ofVirtual().name("Virtual Thread").start(new Task());// 方式4
//        ThreadFactory threadFactory = Thread.ofVirtual().name("Virtual Thread").factory();
//        threadFactory.newThread(new Task()).start();// 方式5  单个虚拟虚拟等待后会立刻执行其他任务,普通线程则会等待,线程设置成1个就能看出来了。// -Djdk.virtualThreadScheduler.parallelism=1 -Djdk.virtualThreadScheduler.maxPoolSize=1
//        ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor();
//        for (int i = 0; i < 10000; i++) {
//            executorService.submit(new Task2());
//        }
//        System.in.read();}static class Task implements Runnable {@Overridepublic void run() {System.out.println(Thread.currentThread());}}static class Task2 implements Runnable {@Overridepublic void run() {System.out.println(Thread.currentThread());try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.println(Thread.currentThread()+" end");}}
}
http://www.lryc.cn/news/191639.html

相关文章:

  • Vue 中的 nextTick 方法
  • TypeScript React(上)
  • Linux 安全 - LSM源码分析
  • 第一次汇报相关问题
  • [产品体验] GPT4识图功能
  • 《3D 数学基础》几何检测-最近点
  • 动态规划 -背包问题-详解
  • Bootstrap-- 媒体特性
  • c# 用非递归的写法实现递归
  • nginx之location的优先级和nginx的重定向
  • 【计算机网络】——前言计算机网络发展的历程概述
  • eventfd
  • BES耳机空间音频技术实现
  • day27--AJAX(bootstrap之modal,toast;接口文档的一些用法;AJAX原理)
  • 【ArcGIS Pro二次开发】(70):杂七杂八的记录
  • 竞赛选题 深度学习 机器视觉 人脸识别系统 - opencv python
  • 【工具】SSH端口转发管理器,专门管理SSH Port Forwarding
  • opencv-phase 函数
  • 44.ES
  • 分权分域有啥内容?
  • 6.Docker搭建RabbitMQ
  • 用 docker 创建 jmeter 容器, 实现性能测试,该如何下手?
  • 4年软件测试,突破不了20K,太卷了。。。
  • 机器人控制算法——两轮差速驱动运动模型
  • Queue简介
  • 被面试官问到分布式ID,别再傻乎乎只会答雪花算法了...
  • 使用Boto3访问AWS S3服务
  • ODrive移植keil(五)—— 开环控制和电流变换
  • 【Java学习之道】日期与时间处理类
  • 信息系统项目管理师第四版学习笔记——高级项目管理