E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Java并发编程学习笔记
6.
Java并发
容器和框架
baseonopenjdk1.8
Java并发
编程的艺术笔记1.并发编程的挑战2.
Java并发
机制的底层实现原理3.Java内存模型4.
Java并发
编程基础5.Java中的锁的使用和实现介绍6.
Java并发
容器和框架
不干活就没饭吃
·
2022-02-20 21:49
Java并发
编程实战: AQS 源码 史上最详尽图解+逐行注释
Java并发
编程实战:AQS源码史上最详尽图解+逐行注释引言:学习一个
java并发
编程工具的时候,我们首先要抓住这三点:状态一般是一个state属性,它基本是整个工具的核心,通常整个工具都是在设置和修改状态
禅与计算机程序设计艺术
·
2022-02-20 15:05
BlockingQueue 使用(生产者-消费者)
如果您对此感兴趣,在我的偏理论的
Java并发
教程中有一个关于阻塞队列的文章。BlockingQueue使用BlockingQueue通常用于使线程产
在下喵星人
·
2022-02-20 12:00
Java并发
编程的艺术-并发编程的挑战
上下文切换假设单核系统,而有多个线程,那么这些线程需要按时间片分配cpu资源。一个线程占用的cpu时间片到期后释放cpu,然后另外一个线程获得cpu资源,这个过程就叫做上下文切换。显然,线程切换涉及到信息的保存与恢复,是会影响多线程执行效率的。所以多线程不一定更快,需要考虑线程创建与线程切换的时间,对于cpu密集型任务分配太多线程显然是不合理的vmstat工具可以查看希提通每秒的上下问切换次数(c
油多坏不了菜
·
2022-02-20 09:40
java并发
面试常识之copyonwrite
今天在网上看到一个问题,问除了加锁之外有没有其他方法来保证线程安全。楼下很多回答copyonwrite机制。这个问题回答有很多,但是copyonwrite的回答有点误导人。copyonwrite机制和单词描述的一样,他的实现就是写时复制,在往集合中添加数据的时候,先拷贝存储的数组,然后添加元素到拷贝好的数组中,然后用现在的数组去替换成员变量的数组(就是get等读取操作读取的数组)。这个机制和读写锁
xpbob
·
2022-02-20 03:56
Java并发
-locks包源码剖析1-Lock和ReentrantLock概述
前面几篇文章分析了java.util.concurrent.atomic包下的原子类和synchronized同步锁,这篇分析JUC的locks包下的锁类。java.util.concurrent.locks下的类不是很多,但是比较复杂,定义了基本的锁Lock,对线程进行park和unpark的LockSupport和核心的AQS框架(AbstractQueuedSynchronizer)。先看下
宛丘之上兮
·
2022-02-19 01:43
Java并发
编程:volatile关键字
前言valatile关键字用到的不多,不过在源码中时常能够看到,对其既熟悉又陌生,熟悉的是这个名字,陌生的它的用意和用法,那么我们就对其一探究竟。内存模型相关概念计算机在执行程序时,每条指令都是在CPU中执行的,过程中势必会涉及到数据的读取和写入,而数据却是存放在主存(物理内存)当中,CPU的速度特别快,但是内存的读取操作相对于CPU的运算速度来说很慢,如果任何时候对数据的操作都要通过和内存的交互
cgzysan
·
2022-02-18 17:23
【
Java并发
编程】Condition源码解析
概述对于Java来说万物皆对象,所有的Java对象的最终父类都是Object,所以它们都拥有一组监视器方法,主要包括:wait(),wait(longtimeout),notify()和notifyAll(),这些方法与Synchronized关键字配合,可以实现等待/通知机制。Condition也提供了类似Object的监控方法,与Lock接口配合能够实现等待/通知机制,但是这两者在使用方式和功
长大后简单很幸福_f63e
·
2022-02-18 15:42
README
本文集所有内容来自《
Java并发
编程的艺术》,这只是我的读书笔记,谁敢说抄袭直接弄死。方腾飞、魏鹏、程晓明著
全栈未遂工程师
·
2022-02-18 15:43
「Java 路线」| 线程池
(联系方式在GitHub)前言线程池是
Java并发
编程中非常重要的概念,同时也是面试重点考察的知识点之一「敲黑板」;在这篇文章里,我将重点分析线程池工作机制&注意事项。
彭旭锐
·
2022-02-18 06:21
Java并发
| join实现顺序执行线程
join实现顺序执行线程join()等待线程摧毁join和synchronized区别join在内部使用wait()方法进行等待synchronized关键字使用的是“对象监视器”原理做为同步实例classAimplementsRunnable{@Overridepublicvoidrun(){System.out.println("A");}}classBimplementsRunnable{@
icebreakeros
·
2022-02-18 03:51
Java并发
包 Future 由用例引发的思考
先上用例staticvoidt1()throwsException{FutureTasktask=newFutureTask(()->"name");ExecutorServiceexecutorService=Executors.newSingleThreadExecutor();Futurefuture=executorService.submit(task);System.out.print
烟雨乱平生
·
2022-02-17 19:03
《数据结构与算法之美》——队列
了解
Java并发
的时候,肯定知道并发队列顺序队列和链式队列和前面的栈数据结构一样
Jackie_Zheng
·
2022-02-17 14:14
Java并发
之synchronized深度解析
本篇文章已授权微信公众号guolin_blog(郭霖)独家发布0.序言本篇从示例和理论两方面讲解synchronized关键字,希望对学习并发的你有所帮助。主要内容:synchronized简介并发后果锁分类对象锁类锁(可能你觉得这样称呼不合理,称呼而已,暂可不必计较)查看线程的生命周期多线程访问同步方法的7种具体情况synchronized的性质加锁解锁的实现原理可重入性质的原理Java的内存模
付凯强
·
2022-02-17 14:56
JVM随笔(三)内存模型
JVM内存模型JVM内存模型与Java内存模型不是一个东西,很多人经常会搞混掉,JMM是
java并发
处理时针对CPU内存抽象出来的一个内存模型。
醉起步溪月啊
·
2022-02-16 23:03
Java并发
编程
Java并发
编程并发一定比串行快么?
Java机械师
·
2022-02-16 20:50
Java并发
编程(九) CompletableFuture
下面我们来分析一下
java并发
编程里的一个工具类CompletableFuture。
skyguard
·
2022-02-16 19:05
Java并发
机制底层实现原理-volatile
章节目录volatile的实现原理与应用1.volatile的实现原理与应用Javasourcecode->Javaclass->JVM->汇编指令->cpu执行java中使用的并发机制依赖于JVM实现和cpu指令。1.1volatile应用volatile-保证可见性volatile是轻量级synchronized,在多处理器并发中保证了共享变量的"可见性"。可见性含义:当一个线程修改共享变量时
markfork
·
2022-02-16 15:21
什么是线程、并发-J.U.C并发系列(2)
回顾回顾上一篇的文章,我们主要介绍了现代计算机模型,CPU的缓存一致性协议,CPU和内存的工作原理,这些知识点都是为了更好的去学习我们的
Java并发
编程。介绍本文,我们来了解一个概念,什么是线程?
油腻的Java
·
2022-02-16 15:52
ReentrantReadWriteLock了解
Java锁概念在讲这个类之前先简单说一下
Java并发
两个概念,共享锁,排他锁(独占锁)。
神易风
·
2022-02-16 13:18
【
Java并发
编程】AQS源码解析
概述在前面我们初步认识了一下lock与AQS的基础内容,在同步组件的实现中,AQS是核心部分,我们通过AQS提供的模板方法来实现自定义同步组件,而底层的同步状态修改、阻塞线程等待队列和等待通知等具体实现则由AQS来完成。AQS中提供的模板方法主要可以分为几大类:独占式的获取和释放同步状态、共享式的获取和释放同步状态、可中断锁和超时等待锁获取的实现。独占式:voidacquire(intarg)//
长大后简单很幸福_f63e
·
2022-02-16 10:17
编程书籍
JavaJava基础书单:《Java编程思想》《深入理解Java虚拟机:JVM高级特性与最佳实践》《HeadFirst设计模式》《Effectivejava》《Java核心技术》《Java8实战》《
Java
雪上霜
·
2022-02-16 10:04
1.Concurrent Collections Overview
本节我们将对
Java并发
容器给出介绍,完成我们在《深入理解Java集合框架》系列文章中未竟的内容。
raincoffee
·
2022-02-16 10:10
学习计划
全栈工程师修炼指南设计模式之美前端:重学前端透视HTTPFlutterJS核心原理数据库:mysql实战45讲SQL必知必会java:零基础学JAVA深入理解jvmjava核心技术36讲消息队列高手课
java
小坚强_Sophia
·
2022-02-15 21:26
JAVA
编程学习笔记
,登陆与注册IO版与操作流
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmv
Java小辰
·
2022-02-15 17:59
(三)死磕并发之深入Hotspot源码剖析Synchronized关键字实现
如果只是想要研究Synchronized关键字原理那么请观看我的上一篇文章:彻底理解
Java并发
编程之Synchronized关键字实现原理剖析。
竹子爱熊猫
·
2022-02-15 15:46
超级硬核,2021年最新Java学习路线图
大家可以先看看我整理的这份GitHub上星标115k+的Java教程,里面涵盖了Java所有的知识点,包括Java语法、Java集合框架、JavaIO、
Java并发
编程和Java虚拟机,内容不多,
张讨嫌学java
·
2022-02-15 11:07
程序人生
编程
java
java
开发语言
后端
c++
c语言
Java并发
编程 - 深入剖析ReentrantLock之非公平锁解锁流程(第2篇)
Java并发
编程-深入剖析ReentrantLock之非公平锁加锁流程(第1篇)2.解锁流程解析在上一篇中,我们分析完A-B-C-D的加锁流程,四个线程执行加锁请求后,ReentrantLock对象的内部数据如下
HRocky
·
2022-02-15 10:30
Java并发
编程 - 深入剖析ReentrantLock之非公平锁加锁流程(第1篇)
这篇文章不是讲ReentrantLock的使用,而是通过调试,分析其实现原理。非公平锁测试代码如下:importjava.util.concurrent.locks.ReentrantLock;publicclassReentrantLockExample{privateReentrantLocklock=newReentrantLock();publicvoiddoSomething(){loc
HRocky
·
2022-02-15 04:50
Java多线程线程组
ThreadGroup它其实并不属于
Java并发
包中
ZhouWG
·
2022-02-14 23:18
Java并发
编程AQS
了解LockSupportLockSupport定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,而LockSupport也成为构建同步组件的基础工具。LockSupport定义了一组以park开头的方法用来阻塞当前线程,以及unpark(Threadthread)方法来唤醒一个被阻塞的线程。LockSupport增加了park(Objectblocker)、parkNanos(
咕噜咕噜_f443
·
2022-02-14 16:56
java并发
之CountDownLatch使用指南
一、CountDownLatch能做什么CountDownLatch是java.util.concurrent包中的一个类,它主要用来协调多个线程之间的同步,起到一个同步器的作用。总的来说,CountDownLatch让一个或多个线程在运行过程中的某个时间点能停下来等待其他的一些线程完成某些任务后再继续运行。类似的任务可以使用线程的join()方法实现:在等待时间点调用其他线程的join()方法,
sunSkyLi
·
2022-02-14 11:06
浅谈
Java并发
之从HashMap到ConcurrentHashMap
Map这样的KeyValue在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论ConcurrentHashMap这样一个并发容器,在正式开始之前我觉得有必要谈谈HashMap,没有它就不会有后面的ConcurrentHashMapHashMap众所周知HashMap底层是基于数组+链表组成的,不过在jdk1.7和1.8中具体实现稍有不同。JDK1.7中的数据结构图:先看一下JDK
你走吧起风了__
·
2022-02-14 09:55
HashMap
java
3. ReentrantLock
关于锁重入以及公平锁的理论请在十一.
Java并发
工具此篇文章中查看。下面将着重分析ReentrantLock如何实现重进入和公平性获取锁的特性,并通过测试来验证公平获取锁对性能的影响。
shallowinggg
·
2022-02-14 08:16
《
Java并发
编程实战》读书笔记一:基础知识
一、线程安全性一个对象是否是需要是线性安全的,取决于它是否需要被多个线程访问当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要额外的同步,这个类都能表现正确的行为,那么就说这个类是线程安全的。1.无状态对象无状态对象不包含域,也不包含与其他类中域的引用,计算过程中的临时状态仅存在于线程栈中的局部变量上,并且只能由正在执行的线程访问。访问无状态对
小七奇奇
·
2022-02-14 01:42
Java并发
编程
第1章课程准备本章首先从课程重点、特点、适合人群及学习收获几个方面对课程进行整体的介绍,然后会从一个实际的计数场景实现开始,给大家展示多线程并发时的线程不安全问题,让大家能够初体验到并发编程,之后会讲解并发和高并发的概念,并通过对比让大家明白到底什么是并发和高并发,最后会给出课程涉及到的知识技能,为后续的学习做好准备。1-1课程导学高并发解决思路与手段3.jpg1-2并发编程初体验多线程计数不准。
cuzz_
·
2022-02-13 20:59
今日碎碎念
看看书,
Java并发
编程的艺术。着实很难懂,表明我在这方面的知识很少。明日继续努力,总会读明白的。
飞扬_9651
·
2022-02-13 09:36
网易Java研发面试官眼中的
Java并发
——安全性、活跃性、性能
一.安全性问题线程安全的本质是正确性,而正确性的含义是程序按照预期执行理论上线程安全的程序,应该要避免出现可见性问题(CPU缓存)、原子性问题(线程切换)和有序性问题(编译优化)需要分析是否存在线程安全问题的场景:存在共享数据且数据会发生变化,即有多个线程会同时读写同一个数据针对该理论的解决方案:不共享数据,采用线程本地存储(ThreadLocalStorage,TLS);不变模式Ⅰ.数据竞争数据
Java_苏先生
·
2022-02-13 02:39
[
Java并发
编程] 用 信号量(Semaphore) 实现一个消息池(含代码)
欲穷千里目,更上一层楼。—唐·王之涣《登颧雀楼》这句诗的意思是:想看到更远更广阔的景物,你就要再上一层楼。想学到更多更深的知识,你就要比原来更努力。PS:如果觉得本文有用的话,请帮忙点赞,留言评论支持一下哦,您的支持是我最大的动力!谢谢啦~Semaphore,计数信号量,用来控制同时访问某个特定资源的线程数量,需要我们设定它的最大访问数量。Semaphore管理着一组虚拟许可,许可的初始数量可以通
seaicelin
·
2022-02-12 21:02
「Java面试必会」synchronized 和 ReentrantLock有什么区别?
提到
Java并发
就会想到锁,面试中常问的就是Java常用的锁。目前最主要的两锁就是synchronized和ReentrantLock,谈谈他们有什么区别。
花生无翼
·
2022-02-12 18:25
聊一聊对于
java并发
基础的认知(二)
聊一聊对于
java并发
基础的认知(一)聊一聊对于
java并发
基础的认知(二)前言本章着重聊一聊线程本身的特性,对于多线程并发编程来说,如果不能了解线程的组成和特性,那么对于后续AQS或是线程池的理解都会受到影响线程基本介绍线程是操作系统调度的基本单元
不改青铜本色
·
2022-02-12 17:48
1.并发编程的挑战
Java并发
编程的艺术笔记1.并发编程的挑战2.
Java并发
机制的底层实现原理3.Java内存模型4.
Java并发
编程基础5.Java中的锁的使用和实现介绍6.
Java并发
容器和框架7.Java中的12
不干活就没饭吃
·
2022-02-12 07:14
第4章
Java并发
编程的基础
线程的优先级:线程的优先级越高,占用CPU的能力越强;线程中断:调用线程对象的interrupt()函数后,线程并不会立即中断,而是将线程的中断标识设为true,只有遇到阻塞函数(sleep()、wait()、join())时,才停止阻塞,抛出异常,并将中断标识重置为false;如何正确中断线程:1.使用阻塞函数捕获中断,在异常处理中跳出任务,使线程结束运行;classRunnerimplemen
红袖者
·
2022-02-12 03:12
多线程交替打印ABC
(出自极客时间APP中,王宝令的《
Java并发
编程实战》)互斥这道题并不涉及共享变量,所以不需要考虑互斥,首先排除。同步一眼就能看出这道题考的就是同步,那怎么同步呢?很
项峥
·
2022-02-11 22:59
java并发
包
知识体系image.png使用多线程可以将多个执行任务同时执行,加快计算机处理速度。在java中,已经有了多线程执行框架,下面将简单介绍。RunnablepublicinterfaceRunnable{publicabstractvoidrun();}CallablepublicinterfaceCallable{Vcall()throwsException;}Runnable和Callable两
扎Zn了老Fe
·
2022-02-11 18:09
JAVA并发
编程核心知识
线程和进程每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。使用线程可以把占据时间长的程序中的任务放到后台去处理,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络
烦远远
·
2022-02-11 17:52
Java并发
同步锁
synchronized如果某一个资源被多个线程共享,为了避免因为资源抢占导致资源数据错乱,我们需要对线程进行同步,那么synchronized就是实现线程同步的关键字,可以说在并发控制中是必不可少的部分特性原子性:如同事务要么全部执行,要么回滚最初,保证数据的准确性可见性:多个线程需要访问一个资源的时候,具有该资源的状态、属性等都具有访问权限有序性:在持锁的代码逻辑,具有先后顺序执行可重入性:一
NengLee
·
2022-02-11 14:46
java并发
编程实战读书笔记:第一章 简介
为什么要在操作系统上实现多个程序同时执行资源利用率、公平性、便利性线程出现的好处降低开发成本丶提升性能、能将异步工作流转换成串行工作流、降低代码复杂度、提高用户界面响应的灵敏度,听声资源利用率和系统吞吐率、简化jvm实现充分利用处理器:如果在双处理器上,如果程序只有一个线程那么只使用一半的cpu资源如果设计正确,不论是多核的处理器还是单处理器都能获得更高的吞吐率在多处理器上不用多说,可以同时执行两
MentallyL
·
2022-02-11 03:25
Java并发
基础之内存模型
并发三问题重排序内存可见性原子性1.重排序publicclassTest{privatestaticintx=0,y=0;privatestaticinta=0,b=0;publicstaticvoidmain(String[]args)throwsInterruptedException{inti=0;for(;;){i++;x=0;y=0;a=0;b=0;CountDownLatchlatch
仰望forward
·
2022-02-11 01:37
吃透
Java并发
:volatile是怎么保证可见性的
前言volatile关键字能够保证可见性和有序性,但是volatile为什么能够保证可见性和有序性?为什么volatile又不能保证原子性?今天,我们从CPU多核缓存架构出发,结合MESI缓存一致性协议来深入剖析一下,volatile的原理。问题的出现我们先通过一个例子来看看,可见性导致的线程安全问题:publicclassMain{staticinta=0;publicstaticvoidmai
小白菜aaa
·
2022-02-10 23:14
上一页
45
46
47
48
49
50
51
52
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他