Java 并发
Java 并发学习笔记
LEI-LEI
做个笔记。以免忘记
展开
-
聊聊同步、异步、阻塞与非阻塞
近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同步与异步首先来解释同步和异步的概念,这两个概念与消息的通知机制有关。也就是同步与异步主要是从消息通知机制角度.转载 2020-07-09 14:07:28 · 261 阅读 · 0 评论 -
Java线程池实现原理及其在美团业务中的实践
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。一、写在前面1.1 线程池是什么线程池(Thread转载 2020-06-07 12:16:46 · 398 阅读 · 0 评论 -
Java并发-线程协同工具类(CountDownLatch 、CyclicBarrier、CompletionService)
目录ReentrantLock、synchronized 大家经常使用也基本了解的比较多,今天介绍一下其他几个很棒的并发工具类一、CountDownLatch 和 CyclicBarrier例子背景:4个工作,开发工作1、开发工作2、测试、上线。单线程执行所有的工作,整个执行顺序为串行,占用的资源少但是完成时长就会更长。 ...原创 2020-05-10 13:41:31 · 636 阅读 · 0 评论 -
从ReentrantLock的实现看AQS的原理及应用
转载自美团技术博客:https://mp.weixin.qq.com/s/sA01gxC4EbgypCsQt5pVog前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深...转载 2020-05-03 21:58:31 · 417 阅读 · 0 评论 -
不可不说的Java“锁”事
转载自美团技术博客:https://tech.meituan.com/2018/11/15/java-lock.html不可不说的Java“锁”事前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。...转载 2020-05-03 18:22:36 · 186 阅读 · 0 评论 -
Java 并发-创建多少线程合适? 超出线程数的请求怎么办?
目录一、创建多少线程合适?二、ThreadPoolExecutor构造函数2.1 添加任务线程池调整流程2.2 拒绝任务handler有四个选择:策略1:ThreadPoolExecutor.AbortPolicy策略2:ThreadPoolExecutor.CallerRunsPolicy策略3:ThreadPoolExecutor.DiscardOldestPoli...原创 2020-06-07 12:17:13 · 3492 阅读 · 0 评论