最新文章列表

JUC(java.util.concurrent)要点笔记

iteye没落了,编辑格式太难整,表格位置有问题,图片无法上传 线程 线程6种状态 java.lang.Thread.State: NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED 启动线程的3种方式:Thread类、Runnable接口、Executor线程池(实际工作中推荐使用这种方式:see《阿里巴巴J ...
tvmovie 评论(0) 有1082人浏览 2020-03-02 11:40

通过实验,整理了部分主流手机浏览器的并发请求数

网上未见针对移动端的浏览器并发数统计,可见的帖子数据全部来自于 StackOverflow 关于主机浏览器的一篇描述。所以,设计了实验,探测了部分手机浏览器,对同域的并发访问量。 手机浏览器 操作系统 一次并发请求 OPPO Android 12, 12, … Chrome Android 6, 6, … WeChat Android 28+ ...
Surmounting 评论(0) 有807人浏览 2020-01-31 14:39

Java 并发

导读 声明:本文所有的分析内容基于 OpenDK 的 java 11 版本的 HotSpot JVM 源代码。 在阅读本文之前,你需要: 了解 Java 中的基本的线程使用方式以及注意点 了解 Java 中的基本线程间通讯的方式 了解 Java 中的 volatile 的基本语义 了解 C/C++ 编程 了解 JNI 的相关开发知识 了解一些 x86 的汇编(仅仅是很简单的内容, ...
aoyouzi 评论(0) 有658人浏览 2019-08-28 13:38

Java并发编程:volatile关键字解析

一.内存模型的相关概念   大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。 ...
yuqingshui 评论(0) 有418人浏览 2019-08-13 18:11

Java多线程的内存模型

Java内存模型很好的说明了JVM是如何在内存里工作的,JVM可以理解为java执行的一个操作系统,作为一个操作系统就有内存模型,这就是我们常说的JAVA内 ...
yuqingshui 评论(0) 有371人浏览 2019-08-13 15:47

Java多线程系列-JUC线程池

线程池架构图 线程池的架构图如下:     1. Executor 它是"执行者"接口,它是来执行任务的。准确的说,Executor提供了execute()接口来执行已提交的 Runnable 任务的对象。Executor存在的目的是提供一种将"任务提交"与"任务如何运行"分离开来的机制。它只包含一个函数接口:
yuqingshui 评论(0) 有566人浏览 2019-08-09 18:39

Java多线程系列-JUC集合

Java集合包 java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合)。 1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack。 (01) LinkedList是双向链表实现的双端队列;它不是线程安全的,只适用于单线程。(02) ArrayList是数组实 ...
yuqingshui 评论(0) 有627人浏览 2019-08-09 09:52

Java多线程系列-JUC锁

Java中的锁,可以分为"同步锁"和"JUC包中的锁"。   同步锁   即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支持同步锁了。   同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是,在同一个时间点,该同步锁能且只能被一个线程获取到。这样 ...
yuqingshui 评论(0) 有633人浏览 2019-08-08 23:52

Java多线程系列-JUC原子类

根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;3. 引用类型: AtomicReference, AtomicStampedRerence, ...
yuqingshui 评论(0) 有457人浏览 2019-08-07 18:05

Java多线程系列-基础篇

线程状态图        
yuqingshui 评论(0) 有508人浏览 2019-08-07 16:16

深入理解多线程-Moniter的实现原理

操作系统中的管程 如果你在大学学习过操作系统,你可能还记得管程(monitors)在操作系统中是很重要的概念。同样Monitor在java同步机制中也有使用。 ...
yuqingshui 评论(0) 有584人浏览 2019-07-29 16:15

透过ReentrantLock窥探AQS

背景 JDK1.5引入的并发包提供了一系列支持中等并发的类,这些组件是一系列的同步器,几乎任一同步器都可以实现其他形式的同步器,例如,可以用可 ...
froest 评论(0) 有573人浏览 2019-05-27 15:25

用synchronized就一定线程安全吗?

用synchronized对方法进行同步,还真不一定线程安全,来看个简单的例子     上面的代码运行出来的结果:
froest 评论(0) 有713人浏览 2019-05-27 14:20

LinkedBlockingDeque 源码分析

简介: LinkedBlockingDeque 是一个双端队列,在队列的两头都能进行 put/offer 操作.我感觉这个类很鸡肋,效率不是很高,大而全. 实现原理: LinkedBlockingDeque 底层使用一把锁(ReentrantLock)来控制入队出队操作.也就是说队列两头的操作来抢这一把锁. 所以这是我认为效率低下的原因. 使用场景: LinkedBlockingDeq ...
一剪梅 评论(0) 有1472人浏览 2019-01-22 16:44

Semaphore 源码分析

介绍: Semaphore 用于对某一物理或逻辑资源被同一时间访问数量的限制. 实现: Semaphore 是如何做到对某一物理或逻辑资源访问数量的限制了? 答案是 AQS. 比如我定义:Semaphore(10), 同一时刻只能有 10 个线程访问线程池,每来一个线程,state -1,当第11线程访问的结果是啥了?由于 state < 0 而被阻塞. 当一个线程访问完后,调用 re ...
一剪梅 评论(0) 有1348人浏览 2019-01-18 17:53

ThreadLocal 源码分析

说明: 每个线程内部持有一个 ThreadLocalMap 的东西,而我发现 ThreadLocal 内中 nextHashCode 为静态变量,这就意味着该变量为所有 ThreadLocal 锁共有. 现在考虑一种极端情况,有两个 ThreadLocal 实例:ThreadLocalA 和 ThreadLocalB. 两个线程:ThreadA 和 ThreadB. ThreadLocalA ...
一剪梅 评论(3) 有2298人浏览 2019-01-05 16:18

一个具体的例子学习Java volatile关键字

相信大多数Java程序员都学习过volatile这个关键字的用法。百度百科上对volatile的定义: volatile是一个类型修饰符(type specifier),被设计用来修饰被不同线程访问和修改的变量。volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。 可能有很多刚学Java的朋友们看了上面这段非常笼统的描述后仍然觉得云里雾里的。 下 ...
JerryWang_SAP 评论(0) 有1128人浏览 2018-09-09 09:30

Java并发锁机制

       在进行多线程编程时,经常遇到多个线程同时对一个变量进行修改的问题。这时候为了保证不出现意想不到的结果,需要为这些变量加锁,以保证同一时刻只有一个线程能够修改。       在Java语言中,为了解决这种同步互斥的访问,有两种方法:synchronized和Lock. 1,synchronized       synchronized是Java语言中的一个关键词,是Java语言 ...
fly_ever 评论(0) 有701人浏览 2018-08-11 21:32

Random和ThreadLocalRandom的实现原理

         从JDK 7 开始引进了一个新的伪随机数生成器,ThreadLocalRandom,从名称可看出是一个与线程相关的Random,和之前的Random进行对比,ThreadLocalRandom在性能上和多线程并发处理上做了一些改进。   1,sun.misc.Unsafe       由于在产生伪随机数过程中,Random和ThreadLocalRandom都使用到了一个 ...
fly_ever 评论(0) 有796人浏览 2018-08-02 00:27

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics