
多线程
文章平均质量分 62
xiaolong2230
这个作者很懒,什么都没留下…
展开
-
for循环与串行化、并行化Stream流性能对比
并行流parallelStream注意事项1、parallelStream是线程不安全的2、parallelStream适用的场景是CPU密集型的,只是做到别浪费CPU,假如本身电脑CPU的负载很大,那还到处用并行流,那并不能起到作用3、I/O密集型 磁盘I/O、网络I/O都属于I/O操作,这部分操作是较少消耗CPU资源,一般并行流中不适用于I/O密集型的操作,就比如使用并流行进行大批量的消息推送,涉及到了大量I/O,使用并行流反而慢了很多4、在使用并行流的时候是无法保证元素的顺序的,也就是即原创 2021-02-03 15:02:52 · 1643 阅读 · 1 评论 -
线程池任务执行器配置以及ExecutorService的invallkeAll、submit、execute方法的区别
一、任务调度器配置:task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲task:scheduled/@cron:cron表达式,注意,若上次任务未完成,即使到了下一次调度时间,任务也不会重复调度<task:scheduled-tasks scheduler="scheduler"> <task:schedul...原创 2019-12-02 18:13:55 · 2251 阅读 · 0 评论 -
ThreadLocalRandom和Random区别与用法
Random原理:在JDK7之前包括现在java.util.Random应该是使用比较广泛的随机数生成工具类,另外java.lang.Math中的随机数生成也是使用的java.util.Random的实例。下面先看看java.util.Random的使用:public class RandomTest { public static void main(String[] args) {...原创 2019-07-23 16:39:56 · 3110 阅读 · 0 评论 -
java多线程之DateTimeFormatter和SimpleDateFormat
1.SimpleDateFormat为什么不是线程安全的?如果我们把SimpleDateFormat定义成static成员变量,那么多个thread之间会共享这个SimpleDateFormat对象, 所以Calendar对象也会共享。public static SimpleDateFormat formater = new SimpleDateFormat( "yyy...转载 2019-07-12 13:58:09 · 940 阅读 · 1 评论 -
java多线程之倒计时器CountDownLatch
示例一、原文:https://www.relaxheart.cn/to/master/blog?uuid=83CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数countDown() // 计数减一await() //等待,当计数减到0时,所有线程并行执行...原创 2019-07-12 14:13:23 · 2496 阅读 · 0 评论 -
LongAdder及AtomicLong
AtomicLong原理 就像我们所知道的那样,AtomicLong的原理是依靠底层的cas来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的。那么LongAdder又是使用到了什么原理?难道有比cas更加快速的方式?LongAdder原理这里让我困惑的一个问题是LongAdder中没有类似于AtomicLong中getAndIncr...原创 2019-07-23 19:41:16 · 293 阅读 · 0 评论 -
ThreadLocal应用场景及实例
一、对ThreadLocal理解ThreadLocal提供一个方便的方式,可以根据不同的线程存放一些不同的特征属性,可以方便的在线程中进行存取。二、以session为例来理解ThreadLocal在web开发的session中,不同的线程对应不同的session,那么如何针对不同的线程获取对应的session呢?我们可以设想了如下两种方式:1.在action中创建session,然后传递...转载 2019-07-23 11:33:06 · 1184 阅读 · 0 评论