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

个人建站 wordpress精品一卡2卡三卡4卡分类

个人建站 wordpress,精品一卡2卡三卡4卡分类,wordpress优化数据库变大,网站打开是404错误一、什么是传统线程?Java 里的传统线程(java.lang.Thread)其实是 操作系统级别的线程(OS Thread),每创建一个 Thread 对象,JVM 底层会向操作系统申请内核线程资源。特点有:线程上下文…

一、什么是传统线程?

        Java 里的传统线程(java.lang.Thread)其实是 操作系统级别的线程(OS Thread),每创建一个 Thread 对象,JVM 底层会向操作系统申请内核线程资源。特点有:线程上下文切换成本高;需要配合线程池(如 ThreadPoolExecutor)来复用;IO 阻塞会卡死一个真实线程。

二、什么是虚拟线程(Virtual Thread)?

        虚拟线程(Java 21 正式引入,源自 Project Loom),是由 JVM 自己调度的轻量线程,不再直接绑定一个 OS 线程。而它的特点是:由 JVM 的调度器托管,切换更轻;可以创建海量线程(百万级别);IO 阻塞自动挂起,节省内核线程。

三、传统线程 VS 虚拟线程 —— 实现对比

下面是一个示例,用来演示如何启动 1 万个线程 / 虚拟线程,分别跑一个简单的任务。

传统线程:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class TraditionalThreadDemo {public static void main(String[] args) throws InterruptedException {// 创建一个固定大小的线程池ExecutorService executor = Executors.newFixedThreadPool(10);long start = System.currentTimeMillis();// 启动 100 个任务for (int i = 0; i < 100; i++) {int taskId = i;executor.submit(() -> {System.out.println("传统线程执行任务:" + taskId + " - " + Thread.currentThread().getName());try {Thread.sleep(1000); // 模拟 IO} catch (InterruptedException e) {e.printStackTrace();}});}executor.shutdown();while (!executor.isTerminated()) {Thread.sleep(100);}long end = System.currentTimeMillis();System.out.println("传统线程总耗时:" + (end - start) + " ms");}
}

虚拟线程--需要 JDK 21+:

public class VirtualThreadDemo {public static void main(String[] args) throws InterruptedException {long start = System.currentTimeMillis();// 启动 100 个虚拟线程for (int i = 0; i < 100; i++) {int taskId = i;Thread.startVirtualThread(() -> {System.out.println("虚拟线程执行任务:" + taskId + " - " + Thread.currentThread().getName());try {Thread.sleep(1000); // 模拟 IO} catch (InterruptedException e) {e.printStackTrace();}});}// 主线程等待足够时间,确保所有虚拟线程完成Thread.sleep(2000);long end = System.currentTimeMillis();System.out.println("虚拟线程总耗时:" + (end - start) + " ms");}
}

对比结果:

特性传统线程虚拟线程
创建成本超低
数量1 万就容易撑爆百万没问题
调度OS 调度JVM 自己调度
IO 阻塞阻塞 OS 线程自动挂起,释放内核线程
适用场景CPU 密集型 / 大任务IO 密集型 / 高并发服务

还可以把任务量调到 100000,传统线程会直接卡死或 OOM,但虚拟线程能稳稳跑。另外可以把 Thread.sleep(1000) 换成 HTTP 请求,能更真实地体现 IO 阻塞优势。

http://www.dtcms.com/wzjs/555481.html

相关文章:

  • 站长网东莞物流网站设计公司
  • 上市公司专利查询网站十堰网络科技有限公司
  • 长沙公司建设网站温州网站建设制作
  • 分销网站方案wordpress 多个页面
  • 电子商务网站建设课程的心得百度地图实时街景怎么移动
  • wordpress默认设置页面烟台网站排名优化报价
  • c#网站开发 pdfoa协同办公系统平台
  • 推荐一下做年会视频的网站企业网站是企业在互联网上进行网络营销
  • 动画形式的h5在哪个网站做英语网站online
  • 忘记网站后台密码建设厅官方网站新资质标准
  • 做网站要钱吗wordpress插件不加载
  • 一个公司做几个网站二极管 东莞网站建设
  • 昆明网站搜索优化网站建设新的开始
  • 中国建设银行驻莫斯科网站wordpress默认邮件在哪里设置密码
  • 淘宝放单网站开发网站空间租用多少钱
  • 邹城网站制作微网站免费建站系统
  • 怎么注册网站啊wordpress微商城模板下载
  • wordpress 中型网站wordpress 中文网站
  • 从事网站开发需要什么西安有关做网站的公司
  • 阳光梦网站建设深圳做网站推广
  • wordpress外贸网站好用的模板网站备案域名用二级域名
  • 软件开发流程简介排名seo怎么样
  • 江都城乡建设局网站微信开发者平台怎么登
  • 做网站每个月可以赚多少钱cloudflare做侵权网站
  • 网站建设的三网合一企业个人邮箱怎么注册
  • 购物网站排名前十wordpress怎么使用七牛云储存
  • 郑州铭功路网站建设学做网站php
  • wap网站制作怎么做福清做网站的公司
  • 做美食的视频网站有哪些wordpress自定义通栏
  • 南通移动网站建设专门做孕婴用品的网站