
多线程
懒惰的毛毛虫
这个作者很懒,什么都没留下…
展开
-
CompletableFuture 简单使用
简单介绍: Java 8 中, 新增加了一个包含 50 个方法左右的类–CompletableFuture,它提供了非常强大的 Future 的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组合 CompletableFuture 的方法。 对于阻塞或者轮询方式,依然可以通过 CompletableFuture 类的 CompletionStage 和 Future 接口方式支持。 CompletableFuture 类声明了 C原创 2020-08-21 16:23:40 · 329 阅读 · 0 评论 -
JDK1.8源码分析之LockSupport(一)
今天发现一个写的很好的juc系列的源码分析,出于对作者的尊重,这里不复制作者的内容 直接给出作者的原文地址: https://www.cnblogs.com/leesf456/p/5347293.html...转载 2018-11-20 18:05:05 · 305 阅读 · 0 评论 -
AtomicStampedReference解决ABA问题
在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。 但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子: 现有一个用单向链表实现的堆栈,栈顶为A,这时线程T1已经知道A.next为...转载 2018-10-20 09:23:14 · 1208 阅读 · 0 评论 -
Guava RateLimiter限流
RateLimiter是guava提供的基于令牌桶算法的实现类,可以非常简单的完成限流特技,并且根据系统的实际情况来调整生成token的速率。 通常可应用于抢购限流防止冲垮系统;限制某接口、服务单位时间内的访问量,譬如一些第三方服务会对用户访问量进行限制;限制网速,单位时间内只允许上传下载多少字节等。 下面是限制每秒钟最大能有10个获取token: import java.util.Ran...原创 2018-08-31 22:51:31 · 1117 阅读 · 0 评论 -
Future 原理模拟
大家已经知道Future可以异步返回结果,但是其中的原理 却并不是所有人都懂 今天偶然看见了一段模拟原理的代码 就记录一下 首先大致介绍下其中的原理 : 在客户端请求的时候,直接返回客户端需要的数据(此数据不一定完整,只是简单的一点不耗时的操作),但是客户端 并不一定,此时就有了时间去完善客户需要的信息 大致原理如此 说到底就是一个简单的异步操作,下面贴上源码 并做简单的介绍: 一:首先创原创 2017-12-20 10:39:14 · 393 阅读 · 0 评论 -
手写tomcat 加手写线程池结合
一 介绍: 前面的介绍copy别人的: 很多初学或将学java web的朋友总是被一系列异于常规java project的流程结构所困惑,搞不清事情的本质,这里就以最简单的方式来让初出茅庐的新手对java web项目有个清晰明了的认识。 学java web的必定先行学过java基础,众所周知,java项目运行于一个public类中的一个pulblic static void main(St原创 2017-10-26 15:38:02 · 828 阅读 · 0 评论 -
JAVA多线程实现龟兔赛跑
要求 1、兔子每秒跑5米,但是每10米要休息2秒 2、乌龟每秒钟4米,不休息 3、谁先到达终点,比赛结束 首先创建一个动物类Animal package com.th.animal; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; publ原创 2017-10-13 09:18:05 · 22565 阅读 · 0 评论 -
HashMap多线程并发问题分析
HashMap多线程并发问题分析 目录 并发问题的症状 HashMap数据结构 HashMap的rehash源代码 正常的ReHash过程 并发的Rehash过程 三种解决方案 转载: HashMap多线程并发问题分析 并发问题的症状 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap转载 2017-10-29 20:09:26 · 2647 阅读 · 0 评论 -
CyclicBarrier 公共屏障点
CyclicBarrier 公共屏障点 博客分类: 多线程 在实际应用中,有时候需要多个线程同时工作以完成同一件事情,而且在完成过程中,往往会等待其他线程都完成某一阶段后再执行,等所有线程都到达某一个阶段后再统一执行。 JDK: 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固转载 2017-07-17 22:33:29 · 365 阅读 · 0 评论 -
CountDownLatch
CountDownLatch 博客分类: 多线程 CountDownLatch 可以用来在一个线程中等待多个线程完成任务的类; 通常的使用场景是,某个主线程接到一个任务,起了n个子线程去完成,但是主线程需要等待这n个子线程都完成任务了以后才开始执行某个操作 JDK: 一个同步辅助类,在完成一组转载 2017-07-17 19:28:18 · 230 阅读 · 0 评论