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并发编程学习笔记
Semaphore
Java并发
库的Semaphore可以很轻松完成信号量控制。Semaphore可以控制某个资源可被同时访问的个数,通过acquire()获取一个许可
linheimx
·
2021-04-21 04:46
习惯养成第 54 天
2017-05-27习惯养成清单[x]早起5:40起床[]做一组seven的唤醒运动[x]起床后喝一杯温水[x]写自我暗示,并读三遍[x]晨读,6:10开始,读《
Java并发
编程实战》,读了2个蕃茄[x
文野_Colin
·
2021-04-21 01:13
第4章
Java并发
包中原子操作类原理剖析
目录原子变量操作类递增和递减操作代码compareAndSet方法AtomicLong使用示例JDK8中新增的原子操作类LongAdder原理源码分析LongAccumulator更多原子变量操作类JUC包中有AtomicInteger、AtomicLong和AtomicBoolean等原子性操作类,它们原理类似,下面以AtomicLong为例进行讲解。递增和递减操作代码publicfinallo
2w6f8c
·
2021-04-20 19:18
Java并发
编程之CountDownLatch源码解析
一、前言CountDownLatch维护了一个计数器(还是是state字段),调用countDown方法会将计数器减1,调用await方法会阻塞线程直到计数器变为0。可以用于实现一个线程等待所有子线程任务完成之后再继续执行的逻辑,也可以实现类似简易CyclicBarrier的功能,达到让多个线程等待同时开始执行某一段逻辑目的。二、使用一个线程等待其它线程执行完再继续执行......CountDow
·
2021-04-20 18:03
Web前端高级
编程学习笔记
9:函数进阶
目录基本概念函数定义函数定义方式函数声明语法函数表达式箭头函数(ES6)Function构造函数函数命名函数参数arguments对象参数默认值扩展参数剩余参数常见问题函数调用作为函数调用作为方法调用构造函数调用间接调用回调函数函数对象函数属性length属性prototype属性自定义属性函数方法基本概念函数,一段JS代码,它只定义一次,但可以被执行或调用任意次。JS函数是参数化的。函数的定义会
L1nCyKkk
·
2021-04-20 15:56
学习笔记
javascript
多线程开发艺术之
Java并发
详解
编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java5以后的版本中如何编写并发代码的一点点经验。为什么需要并发并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开
哥哥是欧巴Vitory
·
2021-04-20 08:28
Java并发
-locks包源码剖析2-ReentrantLock锁机制
上一篇文章对ReentrantLock锁进行了概述,相信看完了的话应该对ReentrantLock锁的使用有了一定的了解,这篇文章分析下ReentrantLock锁的实现机制。首先需要了解ReentrantLock类里面有三个静态类:Sync、NonfairSync和FairSync,ReentrantLock的锁内部实现通过NonfairSync和FairSync实现,而NonfairSync和
宛丘之上兮
·
2021-04-20 07:46
Java并发
包之多个线程同时访问:信号量
说明:重入锁与读写锁关系不大,不是包含关系,前者继承自lock接口,后者继承自ReadWriteLock接口,接口中有readLock与writeLock方法,返回值类型实现了lock接口,要非说联系的话,就在这里。可以这么说:读写锁中的readLock与writeLock生成的每一个对象都是重入锁。Semaphore:信号量有两个构造方法,一个穿一个参数:表示几个线程进入,另一个有两个参数,第二
xinxinlimin
·
2021-04-20 06:36
Java 线程基础
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-20 05:03
Java并发
编程相关
参考:方腾飞魏鹏程晓明《
Java并发
编程的艺术》1.上下文切换CPU分时间片处理多线程任务,切换执行线程的时候要进行上下文切换和保持。
环球探测
·
2021-04-20 02:52
JAVA并发
(6)— AQS源码解析(独占锁-加锁过程)
AQS(AbstractQueuedSynchronizer)是Java众多锁以及并发工具的基础类,底层采用乐观锁,大量采用CAS操作保证其原子性,并且在并发冲突时,采用自旋方法重试。实现了轻量高效的获取锁。1.AQS的关注点ReentrantLock中使用到了AQS高并发组件,用它来维护锁的状态,这样就不需要利用操作系统来维护,减少了上下文切换。AQS中使用了CAS、自旋操作来提高性能。但是在线
小胖学编程
·
2021-04-20 00:58
Java 并发之 ReentrantLock 深入分析(与Synchronized区别)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-20 00:09
Java并发
编程之基础篇三——线程间通信
线程间通信1.1Volatile和synchronized关键字1.2等待/通知机制1.3小结线程开始运行,拥有自己的栈空间,每个运行中线程,如果仅仅是孤立地运行,那么没有一点点的价值,或者说价值很少,如果每个线程能够互相配合完成工作,这将会带来巨大的价值。1.1Volatile和synchronized关键字Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个线程这个
Li's Spring
·
2021-04-20 00:06
Java并发
并发编程
java
多线程
网络编程5:高并发服务器——基于epoll ET模式反应堆模型的服务器设计
返回:Linux网络
编程学习笔记
/**epoll基于非阻塞I/O事件驱动*/#include#include#include#include#include#include#include#include
snaking616
·
2021-04-19 22:42
linux网络编程
Java “优雅”地中断线程(实践篇)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 22:26
Java并发
编程:JMM (Java内存模型) 以及与volatile关键字详解
计算机系统的一致性在现代计算机操作系统中,多任务处理几乎是一项必备的功能,因为嵌入了多核处理器,计算机系统真正做到了同一时间执行若干个任务,是名副其实的多核系统。在多核系统中,为了提升CPU与内存的交互效率,一般都设置了一层“高速缓存区”作为内存与处理器之间的缓冲,使得CPU在运算的过程中直接从高速缓存区读取数据,一定程度上解决了性能的问题。但是,这样也带来了一个新问题,就是“缓存一致性”的问题。
鄙人薛某
·
2021-04-19 20:34
【死磕
Java并发
】-----J.U.C之AQS:CLH同步队列
此篇博客所有源码均来自JDK1.8在上篇博客【死磕
Java并发
】-----J.U.C之AQS:AQS简介中提到了AQS内部维护着一个FIFO队列,该队列就是CLH同步队列。
chenssy
·
2021-04-19 19:42
真正理解Java Volatile的妙用
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 16:59
Java并发
编程之线程之间的共享和协作
一、线程间的共享1.1ynchronized内置锁用处Java支持多个线程同时访问一个对象或者对象的成员变量关键字synchronized可以修饰方法或者以同步块的形式来进行使用它主要确保多个线程在同一个时刻,只能有一个线程处于方法或者同步块中它保证了线程对变量访问的可见性和排他性(原子性、可见性、有序性),又称为内置锁机制。对象锁和类锁对象锁是用于对象实例方法,或者一个对象实例上的类锁是用于类的
·
2021-04-19 15:59
Java 并发之 ReentrantReadWriteLock 深入分析
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 14:40
Java并发
|Semaphore如何实现限流器
大家好,我是七哥,今天是2020.10.24,也是我们程序员的节日,在这里祝大家节日快乐。絮叨一下今天我们一起来学习下如何使用JDK提供的并发工具类来实现限流。在之前的工作中,我们有一个限流的场景,那就是在调用关联方系统的时候需要限流,因为提供服务方是保险的核心系统,大家应该都懂这种系统支持的并发不会大,为了保护双方系统的可用性,作为调用方我们在调用的时候也会做一个限流控制。这种场景在工作中很常见
程序员七哥
·
2021-04-19 14:17
Java并发
学习笔记 -- Java中的Lock、volatile、同步关键字
Java并发
参考资料:《
Java并发
编程的艺术》并发番@Synchronized一文通(1.8版)一、锁1.偏向锁1.思想背景来源:HotSpot的作者经过研究发现,大多数情况下,锁不仅不存在多线程竞争
慕北人
·
2021-04-19 12:09
JUC并发核心AQS同步队列原理详解
Java并发
编程的核心在java.util.concurrent(简称juc)包,而juc包的大部分工具都是以AQS为基础进行构建的,例如Semaphore、ReentranLock
keyuan0214
·
2021-04-19 10:06
Java Semaphore/CountDownLatch/CyclicBarrier 深入解析(应用篇)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 10:43
Java ThreadLocal你之前了解的可能有误
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 10:08
Java并发
编程之Executor线程池原理与源码解读
1.线程1.1定义进程:进程是程序的一次执行,进程是一个程序及其数据在处理机上顺序执行时所发生的活动,进程是具有独立功能的程序在一个数据集合上运⾏的过程,它是系统进行资源分配和调度的一个独立单位线程:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位1.2为什么要使用多线程更多的处理器核心更快的响应时间更好的编程模型1.3优先级现代操作系统基本采用时分的形式调度运行的线
逍遥白亦
·
2021-04-19 08:55
2020年面试Java面试必备知识点,吃透这些让你轻松拿下大厂offer
2020年开始了,今年的金三银四也到来了,给大家整理了今年来最经典的面试真题100道,每个题目都有详细的解答,收集了java基础、RabbitMQ,微服务、MySQL数据库、
Java并发
、JVM,Redis
Java胖胖
·
2021-04-19 07:49
Java Unsafe/CAS/LockSupport 应用与原理
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 06:20
Java并发
编程:Synchronized及其实现原理
Synchronized原理如果对上面的执行结果还有疑问,也先不用急,我们先来了解Synchronized的原理,再回头上面的问题就一目了然了。我们先通过反编译下面的代码来看看Synchronized是如何实现对代码块进行同步的:packagecom.paddx.test.concurrent;publicclassSynchronizedDemo{publicvoidmethod(){synch
taj3991
·
2021-04-19 05:05
Java Synchronized 重量级锁原理深入剖析下(同步篇)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-19 02:42
后端架构师技术图谱(三)-并发、锁、设计模式(二)
并发多线程《40个Java多线程问题总结》线程安全《
Java并发
编程——线程安全及解决机制简介》一致性、事务事务ACID特性《数据库事务ACID特性》事务的隔离级别未提交读:一个事务可以读取另一个未提交的数据
咪雅先森
·
2021-04-19 01:22
Java并发
编程:线程池的使用(转载)
原文出处:[https://www.cnblogs.com/dolphin0520/p/3932921.html]
Java并发
编程:线程池的使用在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便
程序猿加内特
·
2021-04-19 00:53
Java并发
编程:Java线程池核心ThreadPoolExecutor的使用和原理分析
引出线程池线程是并发编程的基础,前面的文章里,我们的实例基本都是基于线程开发作为实例,并且都是使用的时候就创建一个线程。这种方式比较简单,但是存在一个问题,那就是线程的数量问题。假设有一个系统比较复杂,需要的线程数很多,如果都是采用这种方式来创建线程的话,那么就会极大的消耗系统资源。首先是因为线程本身的创建和销毁需要时间,如果每个小任务都创建一个线程,那么就会大大降低系统的效率。其次是线程本身也是
Java黎先生
·
2021-04-18 22:58
Java并发
编程:Synchronized及其实现原理
并发编程.png每天进步一点,不做curd工程师与Api调用工程师欢迎访问个人博客网站:https://www.coder-programming.cn/作者:liuxiaopeng博客地址:http://www.cnblogs.com/paddix一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronize
Coder编程
·
2021-04-18 20:38
Java Synchronized 重量级锁原理深入剖析上(互斥篇)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-18 19:32
Java并发
编程:重排序和happens-before
举个例子在讲重排序之前,先来看一个例子:inta=0,b=0;publicvoidmethodOne(){intone=a;b=1;}publicvoidmethodTwo(){inttwo=b;a=2;}应该不难看出,在上面的例子中,我定义了两个共享变量a和b,以及两个方法。其中第一个方法是将局部变量one赋值为a,然后将b的值置为1。第二个方法则是将局部变量two赋值为b,然后将a的值置为2。
longLiveData
·
2021-04-18 19:29
深入理解
Java并发
编程之Synchronized关键字实现原理剖析
引言Synchronized关键字(互斥锁)原理,一线大厂不变的面试题,同时也是理解
Java并发
编程必不可少的一环!
竹子爱熊猫
·
2021-04-18 19:38
Java并发
编程(十五):CountDownLatch源码逐行深度分析
前言 CountDownLatch维护了一个计数器(还是是state字段),调用countDown方法会将计数器减1,调用await方法会阻塞线程直到计数器变为0。可以用于实现一个线程等待所有子线程任务完成之后再继续执行的逻辑,也可以实现类似简易CyclicBarrier的功能,达到让多个线程等待同时开始执行某一段逻辑目的。 有了前面Semaphore源码分析和ReentrantLock源码分
黄智霖-blog
·
2021-04-18 18:26
JAVA
Java并发编程
并发编程
CountDownLatch
并发编程知识详解(一)
要细致的了解每个知识背后产生的原因和相关处理并发的底层原理,确实还是比较需要时间好好消化的,现在对于一般的知识点一般我会几个方面着手去了解,从几个方面看,分别是:原理、使用场景、优缺点、产生的原因、代码接入实例,废话少说想在就带大家去了解
java
Android开发_Hua
·
2021-04-18 15:47
Java并发
机制的底层实现原理 - synchronized和volatile
“本文主要介绍synchronized和volatile到实现原理”synchronized和volatile几乎是java面试基础部分必会,不会你就吃亏了,这一篇文章摘抄《
Java并发
编程的艺术》对于初学者来说看懂这篇可能有点困难
八年码农
·
2021-04-18 14:20
Java 线程状态
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-18 09:49
【
Java并发
编程与高并发解决方案】JAVA内存模型JMM以及乱序执行优化(重排序)
出现线程安全问题,一般是因为主存和工作内存数据不一致以及重排序,那今天就说一下这两个方面。乱序执行优化乱序执行优化是多核CPU为了提高效率而做的不符合代码规则的优化。inta=1;intb=1;intc=a+b;正常我们看到的执行顺序是A-B-C,但是因为CPU的重排序,运行顺序有可能变为B-A-C,这时候结果是不会受到任何影响的。JMM说到并发就要设计多个线程之间是如何通信的,通信可以分为两种:
留夕_3826
·
2021-04-18 09:25
深入理解
Java并发
编程之线程池、工作原理、复用原理及源码分析
一、引言一般在开发过程中,一个功能是运行时长太久了,一般是通过什么方式去优化的?异步/多线程,对于一个业务方法而言,如果其中的调用链太长势必会引起程序运行时间延长,导致整个系统吞吐来量下降,而我们使用多线程方式来对该方法的调用链进行优化,对于一些耦合度不是特别高的调用关系可以直接通过多线程来走异步的方式进行处理,大大的缩短了程序的运行时长,但是如果我们的多线程创建方式是通过newThread();
竹子爱熊猫
·
2021-04-18 09:58
Java Thread.sleep/Thread.join/Thread.yield/Object.wait/Condition.await 详解
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-18 08:26
Java并发
之 AQS 深入解析(上)
线程基础Java“优雅”地中断线程Java线程状态真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
fishforest
·
2021-04-18 07:16
Java并发
编程 - CyclicBarrier
在之前写过的关于CountDownLatch的这篇文章中,我们通过使用"学生春游场景"这个示例来讲述了CountDownLatch的使用,在这个示例中我们这样处理:老师拿了个包含50个同学名字的名单,同学来一个就划掉一个,当所有的同学都被划掉后,说明所有的同学都到了,这时候就可以出发了。"划掉"也体现了"countdown"的含义。继续拿这个案例说来说,不过我们现在关注的不是"到齐-出发"这个先来
HRocky
·
2021-04-18 05:57
Android开发大佬的Offer收割之旅,从字节跳动到BAT
对于Java基础,推荐《深入理解Java虚拟机》《EffectiveJava》《
Java并发
编程之美》,Android推荐阅读《Android开发艺术探索》和《Android源码设计模式解析与实战》,Android
Android开发架构师
·
2021-04-18 03:12
Java并发
(二):底层实现原理
一.volatilevolatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。实现原理volatile修饰的共享变量,在进行写操作的时候,会多出一条lock前缀的汇编指令lockaddl$0x0,(%esp)。lock前缀的汇编指令的作用:将当前处理器缓存回写到内存。上述回写操作会导致其他处理器的缓存失效。正是这两条特性保证了volatile共享变量的“可见
Jorvi
·
2021-04-18 02:30
Java并发
指南11:解读 Java 阻塞队列 BlockingQueue
https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章同步发于我的个人博客:www.how2playlife.com本文是微信公众号【Java技术江湖】的《
Java
Java技术江湖
·
2021-04-18 00:41
JAVA并发
编程 并发容器 HashMap这一块 JDK1.7HashMap死循环原因
认识hashhash就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。常用HASH函数:直接取余法、乘法取整法、平方取中法。处理冲突
咕噜咕噜_f443
·
2021-04-17 23:28
上一页
55
56
57
58
59
60
61
62
下一页
按字母分类:
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
其他