随笔分类 - Thread
摘要:场景 项目基于SpringBoot搭建,默认使用Tomcat Web容器,对于每个HTTP请求,Tomcat Web容器会分配1个线程来处理请求。 在pom.xml里查看依赖关系: spring-boot-starter-web添加了tomcat-embed-core依赖 Tomcat线程池配置可在
阅读全文
摘要:背景 项目开发中经常会用到多线程,比如批量数据处理任务。 通过多线程并行处理,能够有效提高处理的效率和缩短处理时长。 假设某项任务需要处理1分钟,有1000个任务要处理,如果单线程每个任务顺序执行,处理时长为1000分钟(约16.67小时)。 如果10个线程同时处理,则时间缩短10倍,即100分钟(
阅读全文
摘要:JAVA提供了volatile关键字,用于修饰变量。 1.保证变量对所有线程的可见性 当一个线程修改了变量的值,会强制同步到内存,这样其它线程能够立即读取它的值。 2.禁止指令重排 通过插入内存屏障禁止CPU重新排序指令。 volatile翻译为:不稳定的、易变的; 含义可以理解为:变量的值可能随时
阅读全文
摘要:JAVA集合类: java.util包下的HashSet和HashMap类不是线程安全的, java.util.concurrent包下的ConcurrentHashMap类是线程安全的。 写2个测试类来验证下: package com.cdfive.learn.thread; import jav
阅读全文