Java并发编程
文章平均质量分 89
zab635590867
这个作者很懒,什么都没留下…
展开
-
Java多线程与高并发七(ThreadLocal源码)
ThreadLocal是什么ThreadLocal提供了线程局部变量,由该类保存的变量,会分开线程,不同的线程会保存不同的变量副本。import java.util.HashMap;import java.util.Map;public class ThreadLocalTest { ThreadLocal threadLocal = new ThreadLocal();...原创 2020-02-05 23:56:21 · 532 阅读 · 0 评论 -
Java多线程与高并发八(线程池)
Java多线程与高并发七本来想写ThreadLocal源码的,实在是看底层代码看不动了!先搁置吧。Java多线程与高并发八给同学们分享下面试中常考的线程池的七大参数!为什么要用线程池 防止频繁创建和销毁线程,让每个线程可以多次使用,防止消耗过多内存,所以我们使用线程池。为什么不用JDK自带线程池 像下面这样定义线程池,不香吗?为什么不用呢?...原创 2020-01-23 00:25:40 · 1579 阅读 · 0 评论 -
Java多线程与高并发六(Lock上锁底层实现原理)
我们前面介绍了Lock的基本用法,知道Lock有公平锁、非公平锁两种实现,也知道Lock底层是用CAS实现的,但我们前面并没有详细介绍底层实现,本文就围绕Lock的加锁操作介绍Lock的底层实现原理。 我们的切入点是可重入锁ReentrantLock的lock()方法:Lock lock = new ReentrantLock();lock.lock();跟进代码...原创 2019-11-17 23:33:18 · 1091 阅读 · 1 评论 -
Java多线程与高并发五(常用并发工具类)
为了实现各种线程的操作,比如线程阻塞、阻塞恢复,JDK提供了大量模型来操纵线程运行。《Java多线程与高并发五(常用并发工具类)》给大家伙儿分享下JDK中常见的并发工具类。说一道面试题实现一个容器,提供add,size方法,两个线程,线程一添加十个元素到容器中,线程二监控容器中元素的个数,当线程一添加到容器的元素个数到5时,线程二给出提示并结束。解法一:wait/notify和syn...原创 2019-11-09 00:44:07 · 1831 阅读 · 1 评论 -
Java多线程与高并发三(volatile关键字)
volatile关键字,开发中一般不用,主要用途就是用来面试造火箭,那么它在代码中的真正作用是啥呢??上一篇博客说到,对于现代多核心计算机而言,在多线程的情况下,如果一个变量没有加volatile修饰,可能出现线程间各自拷贝主内存的变量值到自己独有的线程CPU缓存中对数据做各种操作,导致变量的变化在线程间不可见的问题。volatile作用一:保证线程之间变量的可见性举个例子:...原创 2019-11-02 16:14:23 · 790 阅读 · 0 评论 -
Java多线程与高并发四(Lock与CAS)
我们在《Java多线程与高并发一》中讲到怎样新建一个线程,用synchronized怎样给代码加锁,以及synchronized锁的优化升级。在《Java多线程与高并发二》中,我们认识了Java的内存模型和计算机的内存架构,以及二者之间的不同,怎样弥补。在《Java多线程与高并发三》中,我们我们认识了volatile关键字,以及其作用和深入原理。《Java多线程与高并发四》给大家介绍L...原创 2019-11-03 22:37:05 · 1023 阅读 · 0 评论 -
Java多线程与高并发二(JMM)
JMM-Java内存模型Java虚拟机把Java的内存分为thread stacks和heap,在理解多线程的时候,这种粗糙的分法已足够。如图所示,该图有如下含义:1、每个线程都有自己的thread stack,意味着只要是存在于thread stack的变量都是线程独有,别的线程是不能访问的。说的直白点,即使两个线程执行相同代码,每个线程都独享变量。2、Java中的基础数据类型...原创 2019-10-29 17:07:03 · 806 阅读 · 0 评论 -
Java多线程与高并发一(基础知识)
Java多线程是面试重要考点,其知识面涉及深度和广度都是其他面试题型所不及的,本博客系列《Java多线程与高并发》记录了博主学习高并发与多线程的路径,知识点由浅入深,并附有大量案例程序,可以作为笔记随时翻查。话不多讲,上干货。程序、进程、线程程序:是一个静态的实体,是一组有序指令的集合,就是躺在硬盘上的一堆代码文件进程:程序运行起来,就是一个进程,每个进程占有某些系统资...原创 2019-10-22 23:20:45 · 3234 阅读 · 0 评论