Category: Concurrency Programming

[汇总]锁Lock经验 0

[汇总]锁Lock经验

【万字长文】高并发中的线程通信,看这一篇就够了! 活锁,也许你需要了解一下 ReentrantLock#tryLock(long timeout, TimeUnit unit)

[汇总]Thread线程经验 0

[汇总]Thread线程经验

多线程真的会使用CPU所有的内核吗? 线程的调度是根据cpu的算法,如果线程的运算量不大,cpu算法调度线程不一定会平均分配给每个内核的。那意思是如果运算量大的话,就会使用到其他的内核咯? 单核 CPU 支持 Java 多线程吗?为什么? 时间片 超线程 上下文切换 切换查看 线程调度 引起线程上下文切换的因素   如何停止一个正在运行的线程 建议使用“抛异常”的方法来实现线程的停止,因为在catch块中还可以将异常向上抛,使线程停止事件得以传播。

Use Case 0

[转]鸟瞰 Java 并发框架

1. 1. 为什么要写这篇文章 几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细节决定成败”。最终我们意识到 NoSQL 不是解决所有问题的银弹,而 NoSQL vs RDMS 的答案是:“视情况而定”。类似地,去年RxJava 和 Spring Reactor 这样的并发库加入了让人充满激情的语句,如异步非阻塞方法等。为了避免再犯同样的错误,我们尝试评估诸如 ExecutorService、 RxJava、Disruptor 和 Akka 这些并发框架彼此之间的差异,以及如何确定各自框架的正确用法。

[转]Java 8如何优化CAS性能 0

[转]Java 8如何优化CAS性能

1. 一、前情回顾 上篇文章给大家聊了一下volatile的原理,具体参见:《Java内存模型原理》。 这篇文章给大家聊一下java并发包下的CAS相关的原子操作,以及Java 8如何改进和优化CAS操作的性能。 因为Atomic系列的原子类,无论在并发编程、JDK源码、还是各种开源项目中,都经常用到。而且在Java并发面试中,这一块也属于比较高频的考点,所以还是值得给大家聊一聊。

[转]深入解析Java锁机制 0

[转]深入解析Java锁机制

1. 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:

[转]并行任务,线程池,工作窃取算法 0

[转]并行任务,线程池,工作窃取算法

记得在上个月,微博上有一则热议的新闻:小学数学老师布置作业,要求“数一亿粒米” 网友大多数是以吐槽的态度去看待这件事,也有人指出能用估算的方法,这是一道考察发散思维的题目。 一开始我也觉得这个题目很荒唐,似乎是不可能完成的任务。但这个细细想来值得玩味,我在思考一个问题:如果从计算机的角度去看,如何才能最快速地数一亿粒米呢?

0

[转]并行化-高并发大杀器

1. 1.前言 想必热爱游戏的同学小时候,都幻想过要是自己要是能像鸣人那样会多重影分身之术,就能一边打游戏一边上课了,可惜漫画就是漫画,现实中并没有这个技术,你要么只有老老实实的上课,要么就只有逃课去打游戏了。虽然在现实中我们无法实现多重影分身这样的技术,但是我们可以在计算机世界中实现我们这样的愿望。

[转]异步化,高并发大杀器 0

[转]异步化,高并发大杀器

1. 1,同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞, 这个几个词已经是老生常谈,当时常常还是有很多同学分不清楚,以为同步肯定就是阻塞,异步肯定就是非阻塞,其他他们不是一回事。 同步和异步关注的是结果消息的通信机制 同步:同步的意思就是调用方需要主动等待结果的返回 异步:异步的意思就是不需要主动等待结果的返回,而是通过其他手段比如,状态通知,回调函数等。