多线程
最是那一低头的温柔
这个作者很懒,什么都没留下…
展开
-
多线程使用不当导致的OOM -ExecutorCompletionService
事故总结集锦-多线程使用不当导致的OOM -ExecutorCompletionService的 “套路” 02(一周一更) - 掘金原创 2022-04-15 15:14:02 · 251 阅读 · 0 评论 -
CompletableFuture vs Parallel Stream
Java 8: 异步利器 CompletableFuture vs Parallel Stream 选哪个 - 掘金原创 2022-04-15 14:05:28 · 292 阅读 · 0 评论 -
CompletableFuture用法
《Java 8 in Action》Chapter 11:CompletableFuture:组合式异步编程 - SegmentFault 思否原创 2022-04-14 11:21:44 · 113 阅读 · 0 评论 -
JUC 工具类之 Phaser 详解
JUC 工具类之 Phaser 详解_liuwg1226的专栏-CSDN博客原创 2022-01-12 17:43:03 · 185 阅读 · 0 评论 -
java多线程之Exchanger
(十二)java多线程之Exchanger_天之妖星的专栏-CSDN博客_exchanger 多线程原创 2022-01-12 11:02:11 · 229 阅读 · 0 评论 -
多线程相关资料
https://www.jianshu.com/p/b90309b78775https://www.jianshu.com/p/4a24d09f9988https://www.jianshu.com/p/3d875dd9d5db原创 2020-12-02 18:39:00 · 135 阅读 · 0 评论 -
线程池相关
https://ld246.com/article/1589470504453#%E6%96%B9%E5%BC%8F%E4%BA%8C-%E7%9B%B4%E6%8E%A5%E8%B0%83%E7%94%A8ThreadPoolTaskExecutor原创 2020-12-02 09:47:51 · 261 阅读 · 0 评论 -
Java8异步编程-CompletableFuture
https://blog.csdn.net/qq_28988969/article/details/97397063转载 2020-09-30 16:51:54 · 130 阅读 · 0 评论 -
手把手教你手动创建线程池
https://www.jianshu.com/p/c0f8d1e2b4eb转载 2020-09-07 14:21:07 · 329 阅读 · 0 评论 -
Java并发编程与高并发解决方案笔记
https://blog.csdn.net/qq_28867949/article/details/80045280原创 2020-08-26 17:02:20 · 134 阅读 · 0 评论 -
ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析
https://www.cnblogs.com/hama1993/p/10409740.html一、基本使用首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的本地变量传递给子线程这种基本操作的,ITL也可以做到,但是前面有讲过,ITL在线程池的模式下,就没办法再正确传递了,所以TTL做出的改进就是即便是在线程池模式下,也可以很好的将父线程本地变量传递下去,...转载 2020-03-09 14:39:50 · 698 阅读 · 0 评论 -
如何在for循环中使用多线程
更多多线程在 www.itkc8.comimport java.util.concurrent.Executor;import java.util.concurrent.Executors;public class Test {private final static Executor executor = Executors.newCachedThreadPool();//启用多线程...转载 2019-07-09 10:14:29 · 11876 阅读 · 0 评论 -
数据保存先入队列,然后批量处理入库
更多多线程知识访问 www.itkc8.compackage com.example.demo.service;import com.example.demo.domain.MyStudent;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;import org.sp...原创 2019-06-19 19:13:25 · 3492 阅读 · 2 评论 -
Java 8 并发篇 - 冷静分析 Synchronized(下)
https://juejin.im/post/5abc9de851882555770c8c72#heading-35http:www.itkc8.com转载 2019-06-03 20:47:16 · 259 阅读 · 0 评论 -
BlockingQueue队列大讲解
更多多线程知识访问 www.itkc8.comhttps://blog.csdn.net/qq_42135428/article/details/802857371:BlockingQueue继承关系java.util.concurrent 包里的BlockingQueue是一个接口,继承Queue接口,Queue接口继承CollectionBlockingQu...转载 2019-06-19 17:04:07 · 474 阅读 · 0 评论 -
Java线程池ExecutorService时让主线程等待子线程完成后继续处理与不用线程处理对比
更多知识请访问 www.itkc8.com用线程代码package com.cowboy.service;import java.util.concurrent.*;/** * @ClassName CommonThreadPool * @Description TODO * @Author hux * @Date 2019/5/22、15:40 * @Version...原创 2019-05-22 16:37:33 · 1112 阅读 · 0 评论 -
多线程处理Future,主线程等待子线程完成后统一处理
更多多线程知识请访问 www.itkc8.compackage com.cowboy.service;import java.util.concurrent.*;/** * @ClassName CommonThreadPool * @Description TODO * @Author hux * @Date 2019/5/22、15:40 * @Version 1...原创 2019-05-22 16:16:57 · 4156 阅读 · 2 评论 -
Java线程池ExecutorService时让主线程等待子线程完成后继续处理
更多线程知识访问 www.itkc8.com线程池工具类:import java.util.concurrent.*;public class CommonThreadPool { private static ExecutorService exec = new ThreadPoolExecutor(50, 100, 0L, TimeUnit.MILLISEC...转载 2019-05-22 16:08:45 · 4663 阅读 · 0 评论 -
Disruptor框架中生产者、消费者的各种复杂依赖场景下的使用总结-我见过最好的Disruptor
更多高并发知识请访问 www.itkc8.com非常感谢https://www.cnblogs.com/pku-liuqiang/p/8544700.htmlDisruptor是一个优秀的并发框架,可以实现单个或多个生产者生产消息,单个或多个消费者消息,且消费者之间可以存在消费消息的依赖关系。网上其他博客往往仅针对框架的一部分使用示例进行了介绍,对于某些场景下介绍并不完全:如多生产者间复...转载 2019-05-12 11:41:58 · 776 阅读 · 0 评论 -
http://blog.csdn.net/zhanghongjie0302/article/details/51519837
多线程技术学习 https://www.itkc8.com使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队列中取元素,此时线程会被阻塞直到阻塞队列中有了元素。当队列中有元素后,被阻塞的线程会自...转载 2017-01-12 18:19:21 · 523 阅读 · 0 评论 -
synchronized详解
多线程技术学习 https://www.itkc8.comJava语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 ...转载 2017-01-12 18:20:15 · 281 阅读 · 0 评论 -
Java四种线程池的使用
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线...转载 2017-01-12 17:59:15 · 373 阅读 · 0 评论 -
JAVA多线程实现的三种方式
Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。多线程技术学习 https://www.itkc8.com 1、继承Thread类实现多线程 继承Thread类的方法尽管...转载 2017-01-12 18:27:22 · 324 阅读 · 0 评论 -
Java并发集合的实现原理
多线程技术学习 https://www.itkc8.com本文简要介绍Java并发编程方面常用的类和集合,并介绍下其实现原理。AtomicInteger可以用原子方式更新int值。类 AtomicBoolean、AtomicInteger、AtomicLong 和 AtomicReference 的实例各自提供对相应类型单个变量的访问和更新。基本的原理都是使用CAS操作:bool...转载 2017-06-24 11:34:01 · 342 阅读 · 0 评论 -
java多线程编程
多线程技术学习 https://www.itkc8.com一、多线程的优缺点多线程的优点:1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快多线程的代价:1)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往往非常复杂。不正确的线程同步产生的错误非常难以被发...转载 2017-06-24 11:38:49 · 265 阅读 · 0 评论 -
常用线程池和调度类
多线程技术学习 https://www.itkc8.com众所周知,开启线程2种方法:第一是实现Runable接口,第二继承Thread类。(当然内部类也算...)常用的,这里就不再赘述。本章主要分析:1.常用线程池2.常用调度类。===========================一、线程池1.newCachedThreadPool (1)缓存型池子...转载 2017-06-24 11:56:35 · 389 阅读 · 0 评论 -
多线程经常使用的3个关键字:synchronized、ReentrantLock、volatile
多线程技术学习 https://www.itkc8.com3个关键字synchronized、ReentrantLock、volatile。一、synchronized 互斥锁,即操作互斥,并发线程过来,串行获得锁,串行执行代码。就像一个房间一把钥匙,一个人进去后,下一个人得等第一个人出来得到钥匙才能进入。如果代码写的不好(A),可能出现死锁!(A得到锁,B等待A释放锁,A不释放,B...转载 2017-06-24 11:57:54 · 466 阅读 · 0 评论 -
Java 中List集合使用多线程分段处理
更多多线程知识请访问 www.itkc8.com因业务需要,需从excel读取数据并插入数据库,由于数据量较大,耗时较长,考虑使用多线程来处理1.读取到的list按数据量分段2.动态创建线程public class ScmcommissionLineServiceImpl{//导入数据public void importData(List list){...转载 2019-03-24 19:32:03 · 1727 阅读 · 0 评论 -
CountDownLatch的使用
更多请访问www.itkc8.comCountDownLatch是一个同步辅助类,犹如倒计时计数器,创建对象时通过构造方法设置初始值,调用CountDownLatch对象的await()方法则处于等待状态,调用countDown()方法就将计数器减1,当计数到达0时,则所有等待者或单个等待者开始执行。 1 package com.thread; 2 import jav...转载 2019-03-24 21:18:42 · 159 阅读 · 0 评论 -
多线程的方法任务的批量提交invokeAll两种方法的区别
多线程的方法请访问 www.itkc8.comExecutorService的invokeAll方法有两种用法:1.exec.invokeAll(tasks)2.exec.invokeAll(tasks, timeout, unit)其中tasks是任务集合,timeout是超时时间,unit是时间单位两者都会堵塞,必须等待所有的任务执行完成后统一返回,一方面内存持有的时...转载 2019-03-25 07:17:07 · 1283 阅读 · 0 评论 -
Java并发编程:线程池的使用
多线程请访问www.itkc8.com在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务...转载 2019-03-25 07:23:39 · 240 阅读 · 0 评论 -
多线程代码
更多请访问 www.itkc8.compublic String list2Str(List<String> list, final int nThreads) throws Exception { if (CollectionUtils.isEmpty(list)) { return null; } ...转载 2019-03-25 07:31:11 · 256 阅读 · 0 评论 -
java 利用Future异步获取多线程任务结果
更多多线程请访问 www.itkc8.comFuture接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。有了Future就可以进行三段式的编程了,1.启动多线程任务2.处理其他事3.收集多线程任务结果。从而实现了非阻塞的任务调用。在途中遇到一个问题,那就是虽然能异步获取结果,但是Fu...转载 2019-03-25 07:40:39 · 528 阅读 · 0 评论 -
多线程设计模式Future、Master-Worker和生产者-消费者模型
更多多线程知识请访问 www.itkc8.com并行设计模式属于设计优化的一部分,它是对一些常用的多线程结构的总结和抽象。与串行结构相比,并行程序的结构通常更为复杂。因此合理的使用并行模式在多线程开发中更具有意义,在这里主要介绍Future、Master-Worker和生产者-消费者模型。Future模式Future模式有点类似于商品订单。比如在网购时,当看重某一件商品时,就可以...转载 2019-03-29 18:11:16 · 291 阅读 · 0 评论 -
【多线程高并发】多线程的设计模式
更多多线程资源在 www.itkc8.com关键字::多线程设计模式,Future模式,Master-Worker模式,生产者-消费者模型github 地址: https://github.com/zhaikaishun/concurrent_programming本篇文章代码在Multi_004 中多线程的设计模式代码在Multi_004当中并行设计模式属于设计优化的...转载 2019-03-29 12:16:25 · 322 阅读 · 0 评论 -
Java并发编程:Lock
非常感谢http://blog.csdn.net/zhanghongjie0302/article/details/51548389多线程技术学习 https://www.itkc8.com通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述Java.util.concurrent.lo...转载 2017-01-12 18:13:56 · 254 阅读 · 0 评论