多线程
乔志勇笔记
java学习新天地
展开
-
Spring Boot中使用@Async实现异步调用
什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。同步调用下面通过一个简单示例来直观的理解什么是同步调用:定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内)@Componentpublic c...转载 2018-04-08 20:04:31 · 271 阅读 · 0 评论 -
https://mp.weixin.qq.com/s/zRBH6SJjRqBiZSmK6fREUw
面试|JAVA的网络IO模型彻底讲解JAVA的网络IO模型彻底讲解1,最原始的BIO模型该模型的整体思路是有一个独立的Acceptor线程负责监听客户端的链接,它接收到客户端链接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客户端,线程销毁。这就是典型的一请求一应答的通讯模型。该模型的最大问题就是缺乏弹性伸缩能力,当客户端并发访问量增加后,...转载 2019-03-20 12:00:21 · 10692 阅读 · 1 评论 -
谈谈线程池使用原则 (线程池如何监控)
https://mp.weixin.qq.com/s?__biz=MzUzODQ0MDY2Nw==&mid=2247483799&idx=1&sn=11e704259d87a16998aad986f4c673e4&chksm=fad6e723cda16e35d917fc10082a8de3fe00250c892f1a1cd5782bdc2b95997b601...转载 2018-10-30 14:32:58 · 10755 阅读 · 0 评论 -
如何优雅的使用和理解线程池
https://crossoverjie.top/2018/07/29/java-senior/ThreadPool/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io前言平时接触过多线程开发的童鞋应该都或多或少了解过线程池,之前发布的《阿里巴巴 Java 手册》里也有一条:可见线程池的重要性。...转载 2018-07-30 14:45:46 · 396 阅读 · 0 评论 -
【死磕Java并发】—–J.U.C之AQS(一篇就够了)
https://mp.weixin.qq.com/s?__biz=MzU2NjIzNDk5NQ==&mid=2247484289&idx=1&sn=56ad0dd81fb2b4e4f86c5aaaaf3164a6&scene=21#wechat_redirect作者:大明哥 原文地址:http://cmsblogs.com越是核心的东西越是要反复看,本文篇...转载 2018-07-26 15:39:07 · 1123 阅读 · 0 评论 -
Java进阶(七)正确理解Thread Local的原理与适用场景
本文结合实例介绍了 Thread Local 的原理与实现方法,并分析了其适用场景。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >...转载 2018-06-19 19:02:34 · 310 阅读 · 0 评论 -
Java进阶(六)从ConcurrentHashMap的演进看Java多线程核心技术
本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为。同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1.8中ConcurrentHashMap的实现原理。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/c...转载 2018-06-19 17:24:16 · 251 阅读 · 0 评论 -
Java进阶(四)线程间通信剖析
本文将介绍常用的线程间通信工具CountDownLatch、CyclicBarrier和Phaser的用法,并结合实例介绍它们各自的适用场景及相同点和不同点。原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/thread_communication/CountDownLatchCountDownLat...转载 2018-06-19 16:59:17 · 305 阅读 · 0 评论 -
Java常见的线程安全的类
通过synchronized 关键字给方法加上内置锁来实现线程安全 Timer,TimerTask,Vector,Stack,HashTable,StringBuffer原子类Atomicxxx—包装类的线程安全类 如AtomicLong,AtomicInteger等等 Atomicxxx 是通过Unsafe 类的native方法实现线程安全的BlockingQueue 和BlockingDequ...转载 2018-06-14 10:20:36 · 3879 阅读 · 0 评论 -
任务的执行与线程池(上)
https://mp.weixin.qq.com/s/p3JZERyZXnF8jR_3KKIGJA写作本文时参考了《java并发编程实战》、《java并发编程的艺术》、java源码以及一些博客文章,力求把这个专题的知识讲的足够全面,最重要的是通俗易懂,如文中有错误请与我联系。为保证你把这些知识完全掌握,最好使用电脑观看,投机取巧是学不到东西的,对自己诚实一点哈。任务执行的几种方式我们先来看一个现实...转载 2018-06-21 11:15:21 · 1690 阅读 · 0 评论 -
Executors的newSingleThreadExecutor()和newFixedThreadPool(1)有什么区别?
https://segmentfault.com/q/1010000011185322Executors的newSingleThreadExecutor()和newFixedThreadPool(1)有什么区别?参考了一些文章,都说newSingleThreadExecutor()主要有两个特性:能保证执行顺序,先提交的先执行。当线程执行中出现异常,去创建一个新的线程替换之。讲到和newFixed...转载 2018-06-21 10:19:15 · 2811 阅读 · 2 评论 -
java并发之同步辅助类(Semphore、CountDownLatch、CyclicBarrier、Phaser)
目录semaphore(seməˌfôr)CountDownLatchCyclicBarrierPhaser 正文线程同步辅助类,主要学习两点:1、上述几种同步辅助类的作用以及常用的方法2、适用场景,如果有适当的场景可以用到,那无疑是最好的回到顶部semaphore(seməˌfôr)含义信号量就是可以声明多把锁(包括一把锁:此时为互斥信号量)。举个例子:一个房间如果只能容纳5个人,多出来的人必须...转载 2018-05-18 15:42:20 · 552 阅读 · 1 评论 -
浅谈 ThreadLocal
https://www.jianshu.com/p/d635591b1967有时,你希望将每个线程数据(如用户ID)与线程关联起来。尽管可以使用局部变量来完成此任务,但只能在本地变量存在时才这样做。也可以使用一个实例属性来保存这些数据,但是这样就必须处理线程同步问题。幸运的是,Java提供了java.lang.ThreadLocal类是一个简单(而且非常方便)的选择。每个ThreadLocal实例...转载 2018-04-16 10:55:14 · 241 阅读 · 0 评论 -
Spring Boot使用@Async实现异步调用:ThreadPoolTaskScheduler线程池的优雅关闭
https://www.jianshu.com/p/205b9d3df869上周发了一篇关于Spring Boot中使用@Async来实现异步任务和线程池控制的文章:《Spring Boot使用@Async实现异步调用:自定义线程池》。由于最近身边也发现了不少异步任务没有正确处理而导致的不少问题,所以在本文就接前面内容,继续说说线程池的优雅关闭,主要针对ThreadPoolTaskSchedule...转载 2018-04-08 20:06:22 · 2274 阅读 · 3 评论 -
Spring Boot使用@Async实现异步调用:自定义线程池
在之前的Spring Boot基础教程系列中,已经通过《Spring Boot中使用@Async实现异步调用》一文介绍过如何使用@Async注解来实现异步调用了。但是,对于这些异步执行的控制是我们保障自身应用健康的基本技能。本文我们就来学习一下,如果通过自定义线程池的方式来控制异步调用的并发。本文中的例子我们可以在之前的例子基础上修改,也可以创建一个全新的Spring Boot项目来尝试。定义线程...转载 2018-04-08 20:05:18 · 354 阅读 · 0 评论 -
责任链模式 多条链路时 spring单例 造成的深坑
https://mp.weixin.qq.com/s/ipXPMtPawDdESMJYrYthcQ一)线上事故:催收系统每日自动分配案件时一直正常,突然某一天(2018-3-27)以后 案件分配不均匀,一系列追踪下查到原因是责任链 有一环 未被执行(kibana上当天2018-3-27 以后 未查看相应的日志记录) ,很奇怪 ,重启服务后 第二天 结果恢复正常(二)分析问题:...原创 2019-04-11 10:46:20 · 1891 阅读 · 2 评论