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

绿色学校网站模板百度账号申诉

绿色学校网站模板,百度账号申诉,程序员给别人做的网站违法了,公司局域网组建方案目录 一、定义与特性 二、虚拟线程实现 2.1 使用 Thread.startVirtualThread() 创建 2.2 使用 Thread.ofVirtual() 创建 2.3 使用 ThreadFactory 创建 2.4 使用 Executors.newVirtualThreadPerTaskExecutor()创建 三、虚拟线程和普通线程的区别 3.1 线程管理方式不同 3…

目录

一、定义与特性

 二、虚拟线程实现

2.1 使用 Thread.startVirtualThread() 创建

2.2 使用 Thread.ofVirtual() 创建

2.3 使用 ThreadFactory 创建

2.4 使用 Executors.newVirtualThreadPerTaskExecutor()创建

三、虚拟线程和普通线程的区别

3.1 线程管理方式不同

3.2 创建成本不同

3.3 并发编程模型的简化

3.4 阻塞操作的影响


一、定义与特性

定义:

        (1)虚拟线程是Java19提出来的一个概念,Java19提供特性预览,开放实装是Java21。

        (2)虚拟线程是一种由JVM而非操作系统直接管理的线程。它独立于操作系统。虚拟线程是依附于主线程的,如果主线程销毁了,虚拟线程也不复存在。

特性(优点):

        1.轻量级:虚拟线程的创建和销毁代价极低,与传统线程相比内存占用少。

        2.高并发:支持数百万级别的并发进程,不会因线程数量限制系统性能。

        3.与传统线程兼容:完全兼容现有的线程API,无需修改代码即可引入虚拟线程。

缺点:

        1.不适用于计算密集型任务:虚拟线程适用于I/O密集型任务,但不适用于计算密集型任务,因为密集型计算始终需要CPU资源作为支持。

        2.与某些第三方库不兼容。

 二、虚拟线程实现

虚拟线程的使用和普通线程几乎一样,唯一的区别在于创建虚拟线程只能通过特定的方法。

在SpringBoot中使用虚拟线程要求SpringBoot的版本最低是 3.x ,JDK的版本不能低于21

2.1 使用 Thread.startVirtualThread() 创建

直接通过Thread静态方法创建,该方式无法指定线程名称,线程名称默认为:null

    @Testvoid testVirtualThread4() {Thread.startVirtualThread(() -> System.out.printf("线程ID:%s - 任务执行完成", Thread.currentThread().threadId())) ;}

2.2 使用 Thread.ofVirtual() 创建

ofVirtual()方法创建的虚拟线程默认是自动执行的,可创建不自动启动的线程,手动执行。

    @Testvoid testVirtualThread2() {// 创建虚拟线程并自动执行Thread.Builder.OfVirtual virtual = Thread.ofVirtual().name("pack1");virtual.start(() -> System.out.printf("%s - VirtualThread1自动执行任务完成\n", Thread.currentThread().getName()));// 创建不自动启动的线程Thread thread = virtual.unstarted(() -> System.out.printf("%s - VirtualThread1手动执行任务完成\n", Thread.currentThread().getName()));// 手动启动虚拟线程thread.start();}

2.3 使用 ThreadFactory创建

    @Testvoid testVirtualThread3() {ThreadFactory threadFactory = Thread.ofVirtual().name("threadFactory").factory();threadFactory.newThread(() -> System.out.printf("%s - 通过工厂创建执行任务完成", Thread.currentThread().getName())).start();}

2.4 使用 Executors.newVirtualThreadPerTaskExecutor()创建

创建一个执行器,为每个任务启动一个新的虚拟线程

    @Testvoid testVirtualThread1() {try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {IntStream.range(0, 10_000).forEach(i -> executor.submit(() -> {Thread.sleep(Duration.ofSeconds(1));System.out.println(STR."task: \{i}");return i;}));}}

三、虚拟线程和普通线程的区别

3.1 线程管理方式不同

  • 虚拟线程:虚拟线程由JVM管理,少量映射到操作系统线程上,实现轻量化,避免了直接依赖操作系统的线程创建、调度和销毁开销。
  • 普通线程:传统的线程是由操作系统直接管理的,每创建一个线程都会占用系统资源,并由操作系统负责调度。

3.2 创建成本不同

  • 虚拟线程:创建成本低,因为不需要操作系统的参与,大多数管理工作由JVM来完成。
  • 普通线程:创建成本比较高,每个线程都会占用一部分操作系统的资源,如:内存和CPU,并且需要频繁的上下文切换。

3.3 并发编程模型的简化

  • 虚拟线程:虚拟线程轻量高效,无需复杂线程池管理,每个任务可直接分配独立线程执行。
  • 普通线程:传统线程开销大,通常需线程池优化,避免频繁创建销毁。

3.4 阻塞操作的影响

  • 虚拟线程:虚拟线程能高效处理阻塞操作,JVM可轻量挂起阻塞线程并调度其他任务,几乎无系统压力。
  • 普通线程:阻塞操作会导致线程挂起,高并发时可能耗尽系统资源。
http://www.dtcms.com/wzjs/377566.html

相关文章:

  • 好的电商网站建设与维护意味着什么河南网站建设哪个公司做得好
  • 行业网站建设分析外链网站推荐几个
  • wordpress停止更新常州谷歌优化
  • 网站建设与管理难学吗百度url提交
  • 浙江做网站公司有哪些突发大事震惊全国
  • 张家口领先的网站建设服务商seo网络推广技术员招聘
  • 用vue做商城网站常用的js如何给企业做网络推广
  • 网上商城开发费用seo如何提高网站排名
  • 南宁网站提升排名如何创建一个网页
  • 一个外国人做的汉子 网站搜索推广
  • 使用oss图片做网站百度信息流怎么做效果好
  • 网站建设制作设计推广百度热搜榜单
  • 昆山建设局图审中心网站it培训机构出来能找到工作吗
  • 手机商城网站建设策划方案范文上海网优化seo公司
  • 银川网站建设实习生百度收录时间
  • 网站建设有什么理论依据代理怎么引流推广
  • 网站模板库 下载如何利用网络进行推广和宣传
  • 金藏源电商网站建设多少钱东莞疫情最新数据
  • 乡村建设网站类聚seo
  • 太原网站建设的公司上海企业网站seo
  • 平面设计师看的网站账号seo是什么
  • 有做lol直播网站百度权重域名
  • 文字直播网站怎么做的百度推广下载
  • 服务器怎么建网站宁波网站关键词优化排名
  • 漳州网站制作seo工作内容有哪些
  • 用jsp做电影网站的界面最近的新闻热点时事
  • 龙华网站 建设深圳信科seo全网优化指南
  • 中山快速做网站价格百度搜索关键词热度
  • google官方网站注册百度非企推广开户
  • 做网站大概需要几步上海公关公司