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
——【并发学习】
并发学习
计划-FutureTask一个强大的类03
在学习FutureTask之前,我们应该先了解一个接口——RunnableFuture这个接口是什么呢,给大家看一下publicinterfaceRunnableFutureextendsRunnable,Future{voidrun();}这是一个很简单的接口吧。继承了Runnable和Future类,runnable就不说了,runnable也是一个接口,并且也有一个run方法。我们平时用ru
你缺少想象力
·
2020-06-24 02:13
Java并发39:Executor系列--ScheduleExecutorService接口学习笔记
[超级链接:Java
并发学习
系列-绪论]本章主要学习ScheduleExecutorService接口。
hanchao5272
·
2020-06-23 12:35
Java并发
Java并发学习实例
Java并发29:ThreadLocalRandom学习笔记-随机数的三种使用方法
[超级链接:Java
并发学习
系列-绪论]本章主要对ThreadLocalRandom进行学习。
hanchao5272
·
2020-06-23 12:34
Java并发
Java并发学习实例
Java并发18:Lock系列-Lock接口与synchronized关键字的比较
[超级链接:Java
并发学习
系列-绪论]Lock接口在之前的章节中多次提及:Java并发02:Java并发Concurrent技术发展简史(各版本JDK中的并发技术)Java并发12:并发三特性-原子性
hanchao5272
·
2020-06-23 12:34
Java并发
Java并发学习实例
Java并发01:进程、线程、并发、并行、多线程、线程安全、死锁、并发优缺点
[超级链接:Java
并发学习
系列-绪论]本章主要对Java并发(Concurrent)相关的概念进行说明。1.进程(Process)与线程(Thread)进程是系统资源分配的最小单元。
hanchao5272
·
2020-06-23 12:34
Java并发
Java并发学习实例
Java
并发学习
记录—手写一个死锁的Demo
真实的面试场景下,当面试官问到死锁相关的知识点的时候,往往会让你手写一个死锁的案例,一般是考察面试者手写代码的功力。死锁,指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。publicclassDeadLockimplementsRunnable{intflag=1;staticObjecto1=newObject();staticObjecto2=newObject();@O
潇湘y雨
·
2020-06-23 05:21
JAVA
Java
并发学习
笔记(一)锁
Java
并发学习
笔记(一)锁前言在多线程环境中,如果对共享变量进行非原子的操作,就很可能出现线程安全问题,为了维护多线程环境下操作共享变量的数据一致性,通常我们就需要用到锁,在Java中,关于锁的概念很多
Aries_Chen_CSDN
·
2020-06-21 16:05
Java并发编程
面试必问 - 2019 Java 高
并发学习
路线图
今儿和大家聊聊并发。虽然搞了多年Java,可许多朋友一提到“并发”就头疼:为什么我已经学习了很多相关技术,可还是搞不定并发编程?小公司根本遇不到并发问题,高并发经验该怎么积累?平时该怎么学习?昨天面试又卡在并发问题上了,并发编程难道已经成为大厂必备的敲门砖了吗?有这些困惑很正常,因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,而这些知识点看上
qianshanding0708
·
2020-06-21 04:58
并发学习
笔记(一)
1.什么是并发?当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发(Concurrent)。----百度百科2.什么多线程?多线程就是把操作系统中的这种并发执行机制原理运用在一个程序中,把一个程序划分为若干个子任务,多
leon-tzc
·
2020-06-20 20:00
并发学习
笔记
利用jol查看64位系统java对象(空对象),默认开启指针压缩,总大小显示16字节,前12字节为对象头关闭指针压缩后,对象头为16字节:-XX:-UseCompressedOopsS.java中增加一个boolean属性publicclassS{publicbooleansign=true;}使用指针压缩:boolean占1个字节,java对象整体占16字节(会向2的指数倍自动对齐)关闭指针压缩
死磕之路
·
2020-05-30 21:00
多线程与高
并发学习
笔记(三)
ThreadLocalThreadLocal线程局部变量,每个线程都维护一个ThreadLocal相关的地址空间,相当于每个线程都有一个自己的数据保存地,不会互相影响;以空间换时间的策略。原理分析分析ThreadLocal源码可知:使用ThreadLocal后,每个线程都维护着一个Map,而Map里存着Entry对象;key为ThreadLocal对象,值为ThreadLocal的set方法设置的
小匠杨
·
2020-05-01 21:21
多线程与高并发
多线程
java
ThreadPoolExecutor
参考文章:Java
并发学习
之线程池ThreadPoolExecutor的小结并发番@ThreadPoolExecutor一文通(1.8版)Java-线程池专题(什么是线程池,如何使用,为什么要用)ThreadPoolExecutor
hjm1fb
·
2020-04-14 10:23
Java
并发学习
之java内存模型JMM
感觉还是要从java内存模型开始。在这个之前先介绍一下MESI。用于保证多个CPUcache之间缓存的一致性。M:被修改该缓存行只被缓存在该CPU中被修改过与主存数据不一致写回主存变成E(独享)E:独享缓存行只被缓存在该CPU缓存中未被修改过与主存一致线程读取成为S如果修改成为M(修改)S:共享该缓存行可能被多个CPU缓存各个缓存与主存一致当有一个CPU修改其他CPU将缓存行变为I(失效)I:无效
Ever_zh
·
2020-04-14 03:31
(五)Java
并发学习
笔记--线程安全-同步容器
一、为什么会出现同步容器?在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Collection接口,分别代表数组、集合和队列这三大类容器。像ArrayList、LinkedList都是实现了
一行代码一首诗
·
2020-04-10 17:03
【Java
并发学习
】之原子类
title:【Java
并发学习
】之原子类date:2017-11-2822:02:15tags:[Java,多线程]categories:Java【Java
并发学习
】之原子类前言在前面的学习中,在处理一些数据的增加
颜洛滨
·
2020-04-08 12:51
并发学习
计划-AbstractExecutorService04
今天要学习的类是AbstractExecutorService,这个类看名字是不是大概有个猜的方向。我在之前的《Executor、ExecutorService和Future的关系》一文中,有讲过ExecutorService。当时说ExecutorService这个类主要是为了执行任务。正确来说,应该是接口。所以我们今天来看看ExecutorService的具体实现类,也就是AbstractEx
你缺少想象力
·
2020-04-07 15:56
Go语言
并发学习
笔记
一、Go程1.goroutine是由Go运行时管理的轻量级线程我们称之为Go程是因为现有的术语—线程、协程、进程等等—无法准确传达它的含义。Go程具有简单的模型:它是与其它Go程并发运行在同一地址空间的函数。它是轻量级的,所有小号几乎就只有栈空间的分配。而且栈最开始是非常小的,所以它们很廉价,仅在需要时才会随着堆空间的分配(和释放)而变化。Go程在多线程操作系统上可实现多路复用,因此若一个线程阻塞
Lizzybaby
·
2020-03-30 05:10
【
并发学习
一】Volatile和Synchronized
1.深入分析VolatileWHAT:轻量级的synchronized;(比synchronized使用和执行成本低,因为它不会引起线程上下文的切换和调度)在多处理器开发中保证了共享变量的“可见性”;(可见性定义:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。)HOW:1.将当前处理器缓存行的数据写回内存;2.这个写回操作会引起其他CPU里的缓存了该内存地址的数据无效。(使用嗅探技
傻瓜先生fd
·
2020-03-29 16:49
并发学习
计划-通俗理解ThreadPoolExecutor06
今天来学习一下ThreadPoolExecutor,给大家看一下这个类是怎么被定义的:publicclassThreadPoolExecutorextendsAbstractExecutorService看到这里,有什么感觉吗,这个类直接继承AbstractExecutorService,我在《AbstractExecutorService》这篇文章曾经讲过AbstractExecutorServ
你缺少想象力
·
2020-03-24 04:15
JAVA多线程与
并发学习
总结
计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位能尽量被充分
Java架构007
·
2020-03-23 02:42
Java中的IO与NIO
前文开了高
并发学习
的头,文末说了将会选择NIO、RPC相关资料做进一步学习,所以本文开始学习NIO知识。IO知识回顾在学习NIO前,有必要先回顾一下IO的一些知识。
lingjiango
·
2020-03-15 15:00
【Java
并发学习
】之线程的创建
【Java
并发学习
】之线程的创建前言Java并发一直是学习中的一个难点,之前虽然也有接触一部分的内容,不过由于当时对于并发的认识不足,所以学习的效果不是很好,乘着最近有时间,重新拾起这一部分内容,重新学习一下
颜洛滨
·
2020-03-06 08:45
java
并发学习
一:线程安全性【arlen】
当做个线程访问某个类时,这个类始终都能表现出真确的行为,那么就称这个类是线程安全的。线程安全类可以认为是一个在并发环境和单线程环境中都不会被破坏的类。无状态的对象一定是线程安全的。原子性竞态条件:在并发编程中,由于不恰当的执行时序而出现的不正确的结果是一种非常重要的情况,这种情况通常称为竞态条件。【当某个计算的正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件】常见的就是:先检查后执行数据
franky_hu
·
2020-02-20 21:13
【Java
并发学习
】之详解线程的点滴(2)
【Java
并发学习
】之详解线程的点滴(2)前言在前面一个小节中,我们学习了线程的属性如,ID、名字、优先级、状态的获取以及设置(如果可以操作)以及守护线程的概念和将线程设置为守护线程的方法,接下来这个小节
颜洛滨
·
2020-02-19 16:43
(七)Java
并发学习
笔记--并发容器(J.U.C)
并发容器之CopyOnWriteArrayListCopy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArray
一行代码一首诗
·
2020-02-15 02:51
JAVA
并发学习
-并发容器CopyOnWriteArrayList
java8CopyOnWriteArrayList使用CopyOnWriteArrayList在迭代器迭代期间不需要向容器加锁或复制,就能得到很好的并发性能内部结构:采用数组存储privatetransientvolatileObject[]array;构造函数:/***Createsanemptylist.*/publicCopyOnWriteArrayList(){setArray(newOb
eliter0609
·
2020-02-06 10:22
Java
并发学习
之synchronized关键字
一、前言该篇文章是基于我的日常使用经验及看书学习的总结,文章中难免会出现疏漏或者理解不正确的地方,如果读者发现问题,可通过邮箱(hongweijin1993#gmail.com)与我联系,谢谢。二、synchronized三个特性1.原子性此处的原子性说的是保证了代码块或者方法为最小执行单位,要么全部成功,要么全部失败,不存在中间状态。2.内存可见性谈到可见性的时候,我们应该首先清楚,在jvm中分
xsza
·
2020-02-02 06:10
并发学习
之 - ReentrantLock
synchronized和ReentrantLock上一篇文章
并发学习
之-synchronized中我们讲解了如何使用关键字synchronized来实现同步访问。
Kip_Salens
·
2020-02-01 05:01
并发学习
之 - synchronized
上一篇文章并发基础知识扫盲讲了一些java中并发相关的基础性的东西,这篇来了解下同步中常使用的关键字synchronized。synchronized关键字是随着Java的诞生就有的的,它对于开发者来说,使用起来非常方便,无需关心底层的复杂实现。但是在使用过程中开发者往往担心synchronized带来的性能问题,认为它太重了,获得锁和释放锁的确会带来性能上的消耗。在JavaSE1.6之后,syn
Kip_Salens
·
2020-02-01 01:24
Java 并发之CountDownLatch 计数器 操作图解细节
更多并发相关内容,查看==>Java线程&
并发学习
目录关键字:AQS,CountDownLatch,countDown,await,线程无序CountDownLatch是基于AQS共享模式特定场景开发的一种同步器
jwfy
·
2020-01-08 06:27
Java并发之条件队列学习
更多并发相关内容,查看==>Java线程&
并发学习
目录阻塞队列BlockingQueue是一种在多线程环境下依旧可以保证线程安全的FIFO队列,生产者从入口端添加数据消费者从出口段获取数据,而当队列为空时
jwfy
·
2019-12-30 12:22
Java
并发学习
之安全发布对象(一)
首先要知道为什么要安全发布对象?当对象发布时有可能被别的线程修改。直接上例子privateString[]exampleString={"1","2"};publicString[]getExampleString(){returnexampleString;}publicstaticvoidmain(String[]args){IssuedExample1issuedExample1=newIs
Ever_zh
·
2019-12-28 10:48
Java
并发学习
(一)-线程内存模型(转)
Java
并发学习
(一)-线程内存模型(转)标签(空格分隔):java原文作者:rainyear原文链接:http://blog.csdn.net/rainyear/article/details/8855498
此博废弃_更新在个人博客
·
2019-12-27 16:47
Java 之 ThreadLocal 详解
更多并发相关内容,查看==>Java线程&
并发学习
目录ThreadLocal在java中是充当“线程本地变量”使用的,在每个线程都会创建该对象从而实现线程之间的隔离,具有一定程度上的线程安全(也就是说不是绝对的线程安全
jwfy
·
2019-12-27 00:20
Java
并发学习
笔记(二)
以下内容接前一篇文章:Java
并发学习
笔记(一)——原子性、可见性、有序性问题六、等待—通知机制什么是等待通知—机制?
roseduan7
·
2019-12-26 15:20
JAVA
并发学习
-ArrayBlockingQueue LinkedBlockingQueue
ArrayBlockingQueue和LinkedBlockingQueue的区别:队列中锁的实现不同ArrayBlockingQueue实现的队列中的锁是没有分离的,即生产和消费用的是同一个锁;LinkedBlockingQueue实现的队列中的锁是分离的,即生产用的是putLock,消费是takeLock在生产或消费时操作不同ArrayBlockingQueue实现的队列中在生产和消费的时候,
eliter0609
·
2019-12-21 03:13
我是如何从月薪4500努力到年薪30W-下篇
如何推进项目进度,如何写日报,周报,使用excel出bug统计图如何控制风险如何利用自动化技术提高工作效率学习前端JS做接口测试,学习JAVA语言结合selenium做自动化学习Testng框架做多线程
并发学习
如何出培训手册让我带新人
洒脱的风
·
2019-12-17 08:31
测试人生
it
测试
Java 异步编程之 FutureTask
更多并发相关内容,查看==>Java线程&
并发学习
目录目录Java异步编程之FutureTask1、自定义Demo获取线程执行结果2、Callable接口3、Future接口4、FutureTask类4.1
jwfy
·
2019-12-16 06:48
(二)Java
并发学习
笔记--安全发布对象
逸出的方式上边关于逸出的概念讲述的很是模糊,下面列举几个逸出的示例。通过静态变量引用逸出publicstaticSetknownSecrets;publicvoidinitialize(){knowsSecrets=newHashSet();}上边代码示例中,调用initialize方法,发布了knowSecrets对象。当你向knowSecrets中添加一个Secret时,会同时将Secret对
一行代码一首诗
·
2019-12-15 14:20
Java技术集合,BAT面试 必备
《NettyZookeeperRedis高并发实战》,面试必备+面试必备+面试必备,高
并发学习
必备好书,没有之一详情前见:疯狂创客圈Java高并发【亿级流量聊天室实战】实战系列【博客园总入口】前言如何才能够能够进入阿里
尼恩_疯狂创客圈
·
2019-12-13 10:01
计算机操作系统(第三版)读书笔记
看这本书的主要目的是想了解进程线程在操作系统内部的实现过程和原理,以便为之后的高
并发学习
打下基础。
wsgx
·
2019-12-12 18:00
【Java
并发学习
三】内存屏障与synchronized、volatile的原理
注:本文内容会有部分涉及上节的硬件知识:【Java
并发学习
二】多线程编程的硬件基础知识总结1.内存屏障上一节讲过,为了解决写缓冲器和无效化队列带来的有序性和可见性问题,我们引入了内存屏障。
MrDTree
·
2019-11-07 02:40
Java
并发学习
Java
并发学习
使用并发的一个重要原因是提高执行效率。由于I/O等情况阻塞,单个任务并不能充分利用CPU时间。所以在单处理器的机器上也应该使用并发。为了实现并发,操作系统层面提供了多进程。
在写代码的路上
·
2019-10-30 05:16
java
并发学习
之内存模型
整装待发注:文章总结自深入理解Java内存模型-系列-程晓明并发编程的三个特性原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度,既不被中断操作,要不执行完成,要不就不执行——处理器优化(处理器对代码进行内存和指令并行的乱序处理)可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值——缓存一致性有序性即程序执行的顺序按照代码的先后顺序执行——指令
Stalern
·
2019-09-16 21:29
Java成神之路
Java
并发学习
(二)Java内存模型与happens-before原则
在并发编程中分析线程安全的问题时往往需要切入点,本文主要围绕两大核心:JMM抽象内存模型以及happens-before规则,三条性质:原子性,有序性和可见性目录Java内存模型概述Java内存模型Java内存模型与硬件内存架构1、硬件内存架构2、JVM对线程的实现3、Java内存模型与硬件内存架构的映射JMM执行内存交互情况原子性、可见性和有序性happens-before原则volatile的
沉梦昂志1995
·
2019-08-10 22:49
Java学习
java后端
多线程
并发编程
Java
并发学习
(一)并发机制底层实现原理,线程安全、线程同步与synchronized关键字
什么是线程安全当多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替运行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获取正确的结果,那这个对象是线程安全的。什么是线程同步当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。同步这个词是从英文
沉梦昂志1995
·
2019-08-08 21:45
java后端
多线程
Java
并发学习
4 : Synchronized实现原理
Synchronized实现原理Java对象头对象是存放在堆内存之中的,大致可以分为对象图,实例变量,填充字节。其中对象头中有一个叫做MarkWord的区域是用来存储包含锁相关的信息:是否有锁,锁的类型,偏向锁偏向的线程的ID,锁的状态.这是64位虚拟机中的模型(32位主要结构与其相同,位数有所不同)5.2几种锁的区别JDK1.6之前,synchronized只有一种锁,就是当时的重量级锁,而JD
过道
·
2019-08-01 16:10
并发编程学习
Java
并发学习
3 :volatile的应用
在Java并发编程中,synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronzied,其在多处理器开发时保证了共享变量的"可见性".问题引入:多个CPU的不可见性造成脏读我们知道CPU速度非常快,比内存快百倍以上,所以CPU更希望和速度相近的CPUcache打交道。而一个多核的CPU本质上就是多个CPU共用一个外壳,每个核就是一个单核CPU,其都有
过道
·
2019-08-01 09:08
并发编程学习
java
并发学习
总结
这是一篇学习总结,不会深入到细节,不过好处是:可以快速获得对java并发编程的整体认识,并且会了解到一些核心的原理。一、JAVA并发的主要组件1线程池2Future3锁:ReentrantLock、AbstractQueuedSynchronizer和LockSupport工具类4队列(阻塞、非阻塞,优先队列、延迟队列)5并发容器类:ConcurrentHashMap/CopyOnWriteArr
Joel.Wang老王
·
2019-07-31 07:46
Java
C++服务器开发完整学习路线(含免费学习资料下载地址)
视频资料:微信搜索公众号“高
并发学习
社区”关注并且发送消息“视频”。
Buger(8哥)
·
2019-06-09 19:57
面试题
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他