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并发编程学习笔记
java并发
包(JUC)
jdk核心库的包java.long.*:最基础,integer/Stringjava.io.*:Io读写,文件操作java.util.*:工具类集合日期java.math.*数学计算bigintegerjava.net.*网络编程,SocketJava.rmi.*java内置的远程调用java.sql.*jdbc操作数据库以上都是公开的api所有的jdk都要实现再比如还有javax.*java扩展
一只猫怎么了
·
2023-04-05 18:01
java并发编程
java
开发语言
Java并发
编程:CountDownLatch、CyclicBarrier和Semaphore
一.CountDownLatch用法CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器:1publicCountDownLatch(intcount){};//参数cou
马小瑄
·
2023-04-05 14:06
理解分布式系统中的缓存架构(下)
源码精品专栏精尽Dubbo原理与源码69篇精尽Netty原理与源码61篇中文详细注释的开源项目
Java并发
源码合集RocketMQ源码合集Sharding-JDBC源码解析合集SpringMVC和Security
公众号-芋道源码
·
2023-04-05 01:22
JUC并发编程
java并发
编程我们在用
java并发
编程时会用到java.util.concurrent(简称JUC)包,该包下包含了并发编程的类。什么是线程线程(thread)是操作系统能够进行运算调度的最小单位。
健小周
·
2023-04-04 23:17
多线程——synchronized详解
当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的”——《
Java
Pluto372
·
2023-04-04 22:41
java基础
JVM
java
jvm
开发语言
大白话聊聊
Java并发
面试问题之谈谈你对AQS的理解?
一、写在前面上一篇文章聊了一下
java并发
中常用的原子类的原理和Java8的优化,具体请参见文章:《大白话聊聊
Java并发
面试问题之Java8如何优化CAS性能?》。
lxltmac
·
2023-04-04 17:29
java
并发
java并发面试
c++高级
编程学习笔记
3
函数指针的类型别名我们通常不考虑函数在内存中的位置,但每个函数实际上都位于某个特定地址。在C++中,可像使用数据那样使用函数。换言之,可使用函数的地址,就像使用变量那样。函数指针的类型取决于兼容函数的参数类型的返回类型。处理函数指针的一种方式是使用类型别名。类型别名允许将一个类型名指定给具有指定特征的一系列函数。例如,下面的代码行定义了MatchFunction类型,该类型表示一个指针,这个指针指
虾球xz
·
2023-04-04 15:03
c++
学习
c++
Java基础 -- 多线程的使用01
3.Java线程三种实现3.1继承Thread类3.2实现Runnable接口3.3实现Callable接口4.线程池4.1七种线程池实现4.2线程池核心参数4.3Code4.4线程池的执行过程4.5
Java
百世经纶『一页書』
·
2023-04-04 12:22
Java
java
jvm
java并发
-原子性
java实现原子性java.util.concurrent.atomic包中提供了很多高级的指令,来保证操作的原子性Atomiclnteger类提供了方法incrementAndGet用来自增publicstaticAtomicLongnextNumber=newAtomicLong();longid=nextNumber.incrementAndGet()incrementAndGet方法以原子
奔跑的蛙牛
·
2023-04-04 11:52
Java面试技术体系整理
34337272/article/details/79805764https://www.nowcoder.com/discuss/5941面试网站及书籍:牛客网牛客网剑指offer深入理解JVM虚拟机编程之美,
JAVA
Mr_YDK
·
2023-04-04 08:45
随笔
面试题
java并发
编程(并发编程的三个问题)
什么是并发编程?首先我们要知道什么是并发?什么是并行?并行:多件事情在同一时刻同时发生并发:在同一时间内,多个事情交替执行并发编程:比如抢票,秒杀等在同一场景下,有大量的请求访问同一资源,会出现一些安全性的问题,所以要通过编程来控制多个线程依次访问资源,称为并发编程引发并发编程的根本原因因为所有的java代码都是在java虚拟机中运行的,而java虚拟机也有自己的模型-----Java内存模型(J
暴走的小帅
·
2023-04-04 07:24
java
面试
jvm
Go语言高级
编程学习笔记
- Web开发
Go语言Web开发笔记本文是教程Go语言高级编程的学习笔记,本部分链接第5章Go和Web·Go语言高级编程1Go的Web框架大致可以分为这么两类:Router框架:对httpRouter进行简单的封装,然后提供定制的中间件和一些简单的小工具集成比如gin,主打轻量,易学,高性能MVC类框架:借鉴其它语言的编程风格的一些MVC类框架,例如beego2根据我们的经验,简单地来说,只要你的路由带有参数,
Initial-T
·
2023-04-04 07:33
Go语言开发笔记
restful
阿里面试官:你没搞清楚HashMap原理,竟然敢写精通!
Hash也称散列、哈希,对应的英文单词Hash,基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出这个映射的规则就是对应的哈希算法,而原始数据映射后的二进制就是哈希值
Java并发
编程学习笔记
你丫才CRUD
·
2023-04-04 05:04
Java之路
hashmap
数据结构
列表
链表
java
《后端架构师技术图谱》
查找算法选择排序冒泡排序插入排序快速排序归并排序希尔排序堆排序计数排序桶排序基数排序二分查找Java中的排序工具布隆过滤器字符串比较KMP算法深度优先、广度优先贪心算法回溯算法剪枝算法动态规划朴素贝叶斯推荐算法最小生成树算法最短路径算法并发
Java
Java烟雨
·
2023-04-03 23:56
java
面试
SPRING
java
开发语言
分布式
数据库
kafka
java并发
编程【二】Executor框架与线程池
文章目录一、Executor框架1.1、this引用逃逸1.2、Executor框架二、线程池ThreadPoolExecutor2.1、线程池优点2.2、线程池方法2.3、线程池创建2.4、线程池参数2.5、运行原理2.6、线程池拒绝策略2.6.1、AbortPolicy2.6.2、CallerRunsPolicy2.6.3、DiscardOldestPolicy2.6.4、DiscardPol
依剑问道
·
2023-04-03 22:21
java基础
java
原来这就是Java内存模型
今天我们来讲讲
Java并发
编程的基础:Java内存模型。它非常的重要,是并发编程里面不可绕去的一环,也是面试的重点。本文依然使用图解的方式带大家理解它。
是fancy呀
·
2023-04-03 13:19
图解并发
java
面试
系统安全
web安全
安全架构
深入理解Synchronized
前言大家好,我是fancy~Synchronized想必大家在工作中一定有接触过,它算是
Java并发
场景下实现多线程安全一种比较直接的操作。有人会说它慢,确实。
是fancy呀
·
2023-04-03 13:48
图解并发
java
后端
架构
系统安全
web安全
JavaScript函数式
编程学习笔记
函数式编程1.什么是函数式编程函数式编程(英语:functionalprogramming)或称函数程序设计、泛函编程,是一种编程范式,它将计算机运算视为函数运算,并且避免使用程序状态以及易变对象。即对过程进行抽象,将数据以输入输出流的方式封装进过程内部,从而也降低系统的耦合度。非函数式编程myString="mynameisString"varwords=[],count=0;text=mySt
xikoo0
·
2023-04-03 10:10
《深入理解Java虚拟机》读书笔记----线程安全与锁优化
点击跳转线程安全
Java并发
编程实战的作者BrianGoetz为“线程安全”做出了一个比较恰当的定义:“当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步
JaneRoad
·
2023-04-03 08:41
编程语言
多线程
java
人工智能
并发编程
Java并发
容器
HashMap、ConcurrentHashMapHashMap常见的不安全问题及原因非原子操作++modCount等非原子操作存在且没有任何加锁机制会导致线程不安全问题;扩容取值扩容期间会创建新的table在数据转储期间,可能会有取到null的可能;碰撞丢失多线程情况下,若同时对一个bucket进行put操作可能会出现覆盖情况;可见性问题HashMap中没有可见性volatile关键字修饰,多线
java老大哥i
·
2023-04-03 07:22
java基础----Synchronized、Lock的区别与Volatile
引用了Lock与synchronized的区别详解synchronized与Lock的区别与使用
Java并发
编程:volatile关键字解析volatile['vɒlətaɪl]易变化的synchronized
pgydbh
·
2023-04-03 06:00
深入理解Java内存模型
目录(emmm....现在好像还不支持)本文为《
Java并发
编程的艺术》一书以及一些相关文章的学习笔记。因这一块知识相互交叉,比较难理出一个清晰的结构,第一次接触学习时会感觉很混乱。遂整理出此文。
prik丶
·
2023-04-03 05:03
java 实现自旋锁_
Java并发
编程——深入理解自旋锁
1.什么是自旋锁自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。2.Java如何实现自旋锁?先看一个实现自旋锁的例子,java.util.concurrent包里提供了很多面向并
柳如婳
·
2023-04-03 04:10
java
实现自旋锁
深入理解Java内存模型五————锁
1锁的释放-获取建立的happensbefore关系锁是
java并发
编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。
南yue
·
2023-04-03 04:27
Java
Java内存
深入理解Java内存模型(五)——锁
锁本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-5锁的释放-获取建立的happensbefore关系锁是
java
还不够
·
2023-04-03 04:52
java内存模型
深入理解Java内存模型——锁
锁的释放-获取建立的happensbefore关系锁是
java并发
编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。
mcgwinds
·
2023-04-03 04:21
java并发编程
java并发编程
Java并发
编程——synchronized底层原理
前言记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它
小波同学
·
2023-04-03 03:54
Java并发
编程的挑战
1.基础知识1.1串行、并行、并发串行,就是任务一个接一个的执行。并行,就是同一时刻,有多个任务在同时运行。计算机为SMP或多核架构,才能同一时刻运行多个任务并发,是一种假的并行。在单核处理器中,同一时刻只能处理一个任务每个任务只运行一小段时间(时间片),不停地切换任务时间片一般只有几十毫秒,使得多个任务看起来在同时运行一样举个多孩家庭的例子(响应国家号召)老王家生了3个孩子,每个孩子年龄相差不大
晓之木初
·
2023-04-03 02:51
#
《Java并发编程的艺术》
java
操作系统
【并发多线程】
java并发
中的Synchronized关键词
为什么要同步Synchronized关键词如果在多线程的环境中,我们经常会遇到资源竞争的情况,比如多个线程要去同时修改同一个共享变量,这时候,就需要对资源的访问方法进行一定的处理,保证同一时间只有一个线程访问。java提供了synchronized关键字,方便我们实现上述操作。为什么要同步我们举个例子,我们创建一个类,提供了一个setSum的方法:publicclassSynchronizedMe
鹤冲天Pro
·
2023-04-03 01:16
Java
java
jvm
开发语言
Java并发
编程专题之AQS
主要参考了博客JUC框架源码解析系列文章目录JDK8AbstractQueuedSynchronizer概述实现大量依赖乐观锁的方式(即CAS+自旋)。它实现了一个FIFO的等待队列用于等待获取同步状态,而获取/释放同步器状态的函数则依靠子类来实现。虽然AQS是一个抽象类,但却没有任何抽象方法。如果定义为抽象方法确实不合适,因为继承使用AQS并不一定需要使用到AQS提供的所有功能(独占锁和共享锁)
tongji4m3
·
2023-04-02 22:01
【Java 并发编程】锁基础
更新的所有的
Java并发
编程内容均整理自《
Java并发
编程的艺术》一书,书中相关内容介绍全面,本文只是对偶觉得有价值和不熟悉的部分进行整理,有兴趣完整系统学习这部分的童鞋请多多购买原书,支持原作者。
刘婉晴
·
2023-04-02 22:26
java
开发语言
jvm
【
Java并发
编程】JMM - Java 内存模型
一、什么是JMMJMM,全程是JavaMemoryModel,直译就是Java内存模型。根据这个名字,可以知道它是Java设计用来管理内存的一个模型。Java中的内存分为主内存和本地内存,线程之间的共享变量存储在主内存(MainMemory)中,每个线程都有一个私有的本地内存(LocalMemory),本地内存中存储了该线程以读/写共享变量的副本。下图很清晰地阐述了这个关系:因为Java通过共享内
刘婉晴
·
2023-04-02 22:56
Java
java
jvm
开发语言
【
Java并发
编程】并发基础 —— 线程
一、线程线程是操作系统调度的最小单元,多线程同时执行,可以提高程序性能。1.什么是线程操作系统运行一个程序,就会创建一个进程,在一个进程里可以创建多个线程,因此线程也叫做轻量级进程。2.线程带来了什么好处现代处理器都是多核的,程序运行过程中能够创建多个线程,而一个线程在一个时刻只能运行在一个处理器核心上,如果一个单线程程序在运行时只能使用一个处理器核心,那么再多的处理器核心加入也无法显著提升该程序
刘婉晴
·
2023-04-02 22:26
java
jvm
开发语言
技术分享
java并发
编程
Java并发
编程1.什么是
java并发
编程Java是一种多线程编程语言,我们可以使用Java来开发多线程程序。
super-my-world
·
2023-04-02 21:28
java
硬件架构
开发语言
Java多线程之并发编程的性能瓶颈和优化方案
一、
Java并发
编程的性能瓶颈线程竞争在多线程编程中,线程之间共享内存,当多个线程同时对同一个变量进
MRZHQ
·
2023-04-02 21:37
多线程
java技术
java
开发语言
面试
java DelayQueue 延时队列
简介DelayQueue是
java并发
包下的延时阻塞队列,常用于实现定时任务。DelayQueue是一个支持延时获取元素的无界阻塞队列。
学习才能变得强大
·
2023-04-02 19:16
java
java
开发语言
Java并发
机制的底层实现原理
Volatilevolatile认为是轻量级的synchronized,使用和执行成本更低,不会引起上下文切换和调度;volatile修饰的变量写操作时的汇编代码会多一条:lock指令,作用:1.将当前处理器缓存行数据写回内存;2.一个处理器的缓存回写会使其他缓存了该内存地址的数据无效;缓存一致性协议:每个处理器通过嗅探总线数据来保证数据一致;需要多个线程区写同一个共享变量,volatile变量是
星冉子
·
2023-04-02 16:47
Java并发
累加器
背景介绍说到并发编程的问题,大多数人第一反应想到的就是大多数举线程安全例子时出现的一段代码:...i++;//自增...然后很自然地想到,由于i++这个操作其实在底层是3个操作:tmp1=i;tmp2=tmp1+1;i=tmp2;因此,i++并非一个原子操作,在多线程环境下线程不安全。那么问题来了,如果要实现一个累加器,在并发条件下实现i++功能,应该怎么做?比如:记录某接口中的方法在1s内被调用
XHLeee
·
2023-04-02 15:27
Java线程池设置多少线程合适
一、经典方法来自《
Java并发
编程实战》二、要点分析1.确定CPU的数量intN_CPUS=Runtime.getRuntime().availiableProce
FA-117
·
2023-04-02 13:17
Java基础
java
开发语言
jvm
Java并发
基础(二)线程状态和基本操作
线程的状态和生命周期示意图线程状态.jpg线程生命周期.pngJava中Thread的各种方法介绍1.yield()Thread的static方法,让出当前CPU的给其他优先级一样或者更高的线程(也可以是自己)。使用场景:当前线程需要其他线程先执行结束才能继续执行,可以先放弃当前线程。2.join()join实现.png3.sleep()和wait()sleep()方法是Thread的静态方法,而
Knight0828
·
2023-04-02 10:47
Java并发
面试题整理
1、并发编程三要素?2、实现可见性的方法有哪些?3、多线程的价值?4、创建线程的有哪些方式?5、创建线程的三种方式的对比?6、线程的状态流转图7、Java线程具有五中基本状态8、什么是线程池?有哪几种创建方式?9、四种线程池的创建:10、线程池的优点?11、常用的并发工具类有哪些?12、CyclicBarrier和CountDownLatch的区别13、synchronized的作用?14、vol
Java小吴吴
·
2023-04-02 09:15
java
面试
spring
sql
mysql
Java并发
计算判断线程池中的线程是否全部执行完毕
目录1java多线程的使用2shutdown和shutdownNow区别源码解析2.1shutdown案例2.2shutdownNow案例2.3源码解读2.4shutdown和shutdownNow总结3判断线程池中的线程是否全部执行完毕3.1方式一:调用ExecutorService中的isTerminated方法3.2方式二:调用ExecutorService中的awaitTerminatio
赵广陆
·
2023-04-02 06:19
java
java
jvm
面试
Java并发
编程-CAS与非阻塞算法
一.锁的弊端频繁的线程挂起和恢复当多个线程发生锁竞争时,那些没有获取锁的线程可能会被挂起并在稍后恢复执行(当发生锁竞争时,jvm不一定直接挂起线程,而是根据之前获取操作中对锁的持有时间长短来判断是挂起还是自旋等待).而当线程被唤醒后,还要等待其他线程执行完他们的时间片以后,才能被调度执行;当锁上存在激烈的时候,调度开销与工作开销的壁纸会非常高悲观锁与乐观锁悲观锁:锁独占是一项悲观技术,它假设最坏情
lj72808up
·
2023-04-02 04:31
java并发
等待条件的实现原理(Condition)
学过java的都知道Object.wait和Object.notify,同时也应该知晓这两个方法的使用离不开synchronized关键字。synchronized是jvm级别提供的同步原语,它的实现机制隐藏在jvm实现中。作为Lock系列功能中的Condition,就是用来实现类似Object.wait和Object.notify对应功能的。使用场景为了更好的理解Lock和Condition的使
段永平
·
2023-04-02 04:15
ThreadLocal原理及使用场景
所谓的共享变量指的是在堆中的实例、静态属性和数组;对于共享数据的访问受Java的内存模型(JMM)的控制,其模型如下:【参考:《
Java并发
编程的艺术》P22】每个线程都会有属于自己的本地内存,在堆(也就是上图的主内存
小机double
·
2023-04-02 03:08
java
java
开发语言
后端
实用线程池工具类
主要采用guava和原生
java并发
包。
会飞的蜗牛66666
·
2023-04-02 02:13
java并发
编程工具类JUC第三篇:DelayQueue延时队列
DelayQueue是BlockingQueue接口的实现类,它根据"延时时间"来确定队列内的元素的处理优先级(即根据队列元素的“延时时间”进行排序)。另一层含义是只有那些超过“延时时间”的元素才能从队列里面被拿出来进行处理。DelayQueue队列将阻止其元素对象从队列中被取出,直到达到为元素对象设置的延迟时间。DelayQueue在队列的头部存储最近过期的元素,如果队列内没有元素过期,使用po
字母哥课堂
·
2023-04-02 02:45
JAVA内存模型(JMM)详解
目录前言
JAVA并发
三大特性可见性有序性原子性Java内存模型真面目Happens-Before规则1.程序的顺序性规则2.volatile变量规则3.传递性锁的规则5.线程start()规则6.线程join
·
2023-04-02 01:16
龙门阵,多线程之——AQS(同步器)源码解析
——《
Java并发
编程的艺术》我们了解一个东西,一般都是有很多疑问,然后逐个击破,所以这里我们就带着疑问出发,看看AQS到底是个什么东西呢?问题1:AQS是个什么呢?AQS结构是怎么样
LOMO四方田
·
2023-04-02 01:00
java并发
编程-并发容器
文章目录1.同步容器2.并发容器3.CopyOnWriteArrayList和CopyOnWriteArraySet4.ConcurrentSkipListSet和ConcurrentSkipListMap5.ConcurrentHashMap6.ConcurrentLinkedQueue和ConcurrentLinkedDeque7.阻塞队列BlockingQueue1.ArrayBlockin
千月落
·
2023-04-02 01:23
Java
java
并发编程
多线程
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
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
其他