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
多线程高并发
多线程高并发
编程(10) -- ConcurrentHashMap源码分析
一.背景前文讲了HashMap的源码分析,从中可以看到下面的问题:HashMap的put/remove方法不是线程安全的,如果在多线程并发环境下,使用synchronized进行加锁,会导致效率低下;在遍历迭代获取时进行修改(put/remove)操作,会导致发生并发修改异常(ConcurrentModificationException);在JDK1.7之前,对HashMap进行put添加操作,
码猿手
·
2020-06-14 18:00
Java大佬又出新秘籍?赶紧入手(高并发+设计模式+算法+项目实战)
在这里分享给粉丝朋友们:高并发马士兵亲授为期两天的
多线程高并发
实战训练视频合集还有一个配套的学习书籍(PDF版)本书籍带你将多线程的知识系统化,帮助你理解多线程在CPU层级的实现,以及这些实现如何一层一层的映射到那些上亿用户
架构师_橘子
·
2020-06-04 19:09
后端
Java
阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!
掌握:精通阿里P7技能(二):java高级java相关的高级特性:JVM、
多线程高并发
、网络等。掌握:精通阿里P7技能(三):Web核心熟练掌握前段开发知识:H5、CSS、JS框架,掌握:熟悉。
liuhuiteng
·
2020-05-26 09:51
架构师
架构师
多线程高并发
分布式性能优化技术都不懂,你拿什么跳槽
前言2019版多线程与高并发(马士兵)各位同学,大家好,这是首次使用比较口语化的文字形成-本书,其实也不知道效果如何,希望各位收到书本后能够多提意见和建议。同时也请大家体谅,由于时间关系和忙碌程度,暂时只能总结成为口语化的形式,后面时间充裕了,将会以书面语言的方式进行重新更新。第一节:线程的基本概念首先给大家交代--下我们2019年这个版本给大家讲哪些内容,这个版本主要之中在多线程和高并发这两大块
马士兵的朋友圈
·
2020-05-22 13:40
java
编程
分布式
数据库
编程语言
java
面试
多线程高并发
编程(9) -- CopyOnWrite写入时复制
CopyOnWrite写入时复制CopyOnWrite,即快照模式,写入时复制就是不同线程访问同一资源的时候,会获取相同的指针指向这个资源,只有在写操作,才会去复制一份新的数据,然后新的数据在被写操作完后立马被其他线程看到最新的数据变化,然后之前获取的指针会指向新的数据,但在写操作未结束时,其他线程仍然能访问最初的资源。此做法主要的优点是如果没有线程进行写操作,就不会进行数据副本的复制,因此多个线
码猿手
·
2020-05-14 16:00
多线程高并发
编程(8) -- Fork/Join源码分析
一.概念Fork/Join就是将一个大任务分解(fork)成许多个独立的小任务,然后多线程并行去处理这些小任务,每个小任务处理完得到结果再进行合并(join)得到最终的结果。流程:任务继承RecursiveTask,重写compute方法,使用ForkJoinPool的submit提交任务,任务在某个线程中运行,工作任务中的compute方法的代码开始对任务进行分析,如果符合条件就进行任务拆分,拆
码猿手
·
2020-05-11 18:00
多线程高并发
编程(7) -- Future源码分析
一.概念AFuture计算的结果。提供方法来检查计算是否完成,等待其完成,并检索计算结果。结果只能在计算完成后使用方法get进行检索,如有必要,阻塞,直到准备就绪。取消由cancel方法执行。提供其他方法来确定任务是否正常完成或被取消。计算完成后,不能取消计算。如果您想使用Future,以便不可撤销,但不提供可用的结果,则可以声明Future表格的类型,并返回null作为基础任务的结果。publi
码猿手
·
2020-05-05 16:00
多线程高并发
编程(6) -- Semaphere、Exchanger源码分析
一.Semaphere1.概念一个计数信号量。在概念上,信号量维持一组许可证。如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它。每个release()添加许可证,潜在地释放阻塞获取方。但是,没有使用实际的许可证对象;Semaphore只保留可用数量的计数,并相应地执行。即一个Semaphore维护了一组permits【许可证】。每次调用acquire()方法都会阻塞,直到
码猿手
·
2020-04-23 10:00
多线程高并发
编程(5) -- CountDownLatch、CyclicBarrier源码分析
一.CountDownLatch1.概念publicCountDownLatch(intcount){//初始化if(count=0){//子线程都执行完成了,原先阻塞线程唤醒执行setHeadAndPropagate(node,r);p.next=null;//helpGCfailed=false;return;}}//前继节点非head节点,没资源获取,将前继节点状态设置为SIGNAL,通过p
码猿手
·
2020-04-21 15:00
多线程高并发
编程(4) -- ReentrantReadWriteLock读写锁源码分析
背景:ReentrantReadWriteLock把锁进行了细化,分为了写锁和读锁,即独占锁和共享锁。独占锁即当前所有线程只有一个可以成功获取到锁对资源进行修改操作,共享锁是可以一起对资源信息进行查看。即写同时只能一个人写,读可以大家一起读。ReentrantReadWriteLock的结构ReentrantReadWriteLock并没有继承ReentrantLock,也并没有实现Lock接口,
码猿手
·
2020-04-20 16:00
多线程高并发
编程(3) -- ReentrantLock源码分析AQS
背景:AbstractQueuedSynchronizer(AQS)publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnableSynchronizerimplementsjava.io.Serializable介绍提供一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。该类被设计为大多
码猿手
·
2020-04-17 14:00
多线程高并发
编程(2) -- 可重入锁介绍和自定义
背景:什么是“可重入”?可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。即可重入锁的作用就是为了避免死锁,java中synchronized和ReentrantLock都是可重入锁。//synchronized可重入锁privatevoidtest(){//第一次获得锁synchronized(this){while(true){//第二次获得同样的锁synchronized(t
码猿手
·
2020-04-16 14:00
物联网海量设备心跳注册,脱网清除——
多线程高并发
互斥锁落地
物联网海量设备心跳注册,脱网清除——
多线程高并发
互斥锁落地目录物联网海量设备心跳注册,脱网清除——
多线程高并发
互斥锁落地1.应用背景2.整体框架2.1.心跳注册框架2.1.1.海量设备2.1.2.心跳上报
JerryMouseLi
·
2020-04-15 22:00
多线程高并发
编程(1) -- 基础及详解
背景:进程和线程的区别:进程的内存大小为:堆内存+线程数量*栈内存,即线程数量=(最大地址空间[MaxProcessMemory]-JVM堆内存-系统保留内存[ReservedOsMemory])/ThreadStackSize(XSS),从中可以看出,线程的数量随栈内存的增多而减少。线程是程序执行的一个路径,每一个线程都有自己的局部变量表、程序计数器(指向正在执行的指令指针)以及各自的生命周期。
码猿手
·
2020-04-15 15:00
多线程高并发
编程基础(代码示例+详解)
以下代码均通过使线程睡眠模拟实际业务场景来解释原理Case1(synchronized介绍):publicclassT{privateintcount=10;privateObjecto=newObject();publicvoidm(){synchronized(o){//这里的加锁是对堆内存中的对象进行加锁,而不是对栈中的引用count--;System.out.println(Thread.
Minority
·
2020-04-10 15:10
【#5-唐水琴】OTCBTC未来看好的币之二
列举三点:一、从技术角度上讲,区块链操作系统,
多线程高并发
,每秒百万级的处理速度等都是EOS被视为区块链3.0的杀手级运用,DM是全球最顶尖的也是目前公认的技术大牛,之前的几个基于石墨烯开发的项目均与获得成功
木头_7aef
·
2020-03-30 18:21
python 多线程 & socket
这个东西在全局上限制了python的性能发挥,python的多线程更多时候有点像过家家的游戏,从性能上比较来说C>C++>golang>scala>java>C#>nodejs>python>php>R不过
多线程高并发
并行异步是每种语言都绕不开的
Helen_Cat
·
2020-03-24 23:29
MySQL功能易用性可靠性适用场景简介
MySQL是MySQLAB公司自主研发的,是目前最流行的开源关系型数据库管理系统,它支持
多线程高并发
多用户。MySQL数据库有简单、高效、可靠的特点。
每天学点编程
·
2020-03-03 08:05
高并发无锁实现CAS原理
在
多线程高并发
编程的时候,最关键的问题就是保证共享对象的安全访问。通常是用synchronized来处理,其实加锁本质上是将并发转变为串行来实现的,势必会影响吞吐量。
激情的狼王
·
2020-02-16 04:12
多线程高并发
编程笔记
多线程(一)1、同步方法和非同步方法是否可以同时调用?是===========================2、银行账户余额,如果对写操作加锁,对读操作不加锁,会产生脏读的问题。=======================================3、一个同步方法可以调用另一个同步方法,synchronized是可重入的。子类synchronized可以调用父类的synchronized
白色风车
·
2019-12-24 10:34
多线程
高并发
java
并行和并发的区别
特点并行一定是并发的并不一定意味着并发一定要去并行高并发和
多线程高并发
:是一种状态,是指大量的请求到达服务端。多线程:是一种解决方案,是防止高并发带来的线程安全问题。高并发并不意味着多线程。
会飞的猪_password
·
2019-12-23 17:28
JAVA
多线程高并发
面试题总结
1,什么是线程?线程和进程有什么区别?答:线程是程序执行的最小执行单位,进程是资源分配的最小单位,一个进程就是一个应用程序,系统会为该进程分配资源空间,当多用户并发请求的时候,为每个用户创建一个进程显然是不可能的资源开销太大,就开辟了线程,线程速度比较快,线程之间共享进程之间的内存资源。2,如何在Java中实现线程?答:继承Thread类实现Runnable接口、实现Callable接口通过Fut
程序猿MM
·
2019-12-17 17:30
nginx
多线程高并发
直接上图Master-Worker模式1、Nginx在启动后,会有一个master进程和多个相互独立的worker进程。2、接收来自外界的信号,向各worker进程发送信号,每个进程都有可能来处理这个连接。3、Master进程能监控Worker进程的运行状态,当worker进程退出后(异常情况下),会自动启动新的worker进程。accept_mutex由于所有子进程都继承了父进程的sockfd,
浮云_Code
·
2019-11-28 16:00
C++
多线程高并发
,原子操作atomic
首先看一下没有原子操作,多个线程对同一个整形++这里使用的是互斥量进行加锁,加了两千万此,花了大约4.5秒voidthreadEntryFunc(){//大约4.5秒for(inti=1;imyNum2=0;voidthreadEntryFunc(){//大约1.7秒左右,可以知道,效率大大提升for(inti=0;iisRunning=true;//线程入口函数voidthreadEntryFu
胜天半子_王二_王半仙
·
2019-10-20 20:40
C++
JAVA
多线程高并发
面试题总结
ReadMe:括号里的内容为补充或解释说明。多线程和高并发是毕业后求职大厂面试中必问的知识点,自己之前总是面试前才去找相关的知识点面试题来背背,隔段时间又忘了,没有沉淀下来,于是自己总结了下相关的知识点。多线程1.进程和线程之间有什么不同?进程是一个独立的运行环境,它可以被看作是一个程序或者一个应用。而线程是在进程中执行的一个任务。进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基
玉涛
·
2019-09-19 22:00
Java在
多线程高并发
下,该如何做到安全的修改同一个数据(含实际操作)
首先举一个例子现在有5个用户同时访问业务需要生成5个唯一订单ID并存入数据库这是一个公共的生成ID的类,生成的规则是【当前时间+用于自增的全局变量】(不要在意这个方式的弊端,只是用来举个栗子~)我们跑一下试试可以看到竟然有两个一模一样的ID,这是万万不能允许发生的情况为什么会发生这种情况呢,是因为多个线程在同一时间访问了这个方法,然后修改了这个int变量,上一个线程还没来得及做完所有操作,int值
_MoLi_
·
2019-08-10 15:29
Java
I/O模型之BIO到NIO到select
(accept和read/write默认是会阻塞的)BIO(同步阻塞,单线程不并发,并发一定阻塞,
多线程高并发
但是有缺点):服务器需要监听端口号,客户端通过IP和端口与服务器建立TCP连接,以同步阻塞
xzengwei1313
·
2019-08-01 21:20
I/O模型
MySQL的锁
(SharedandExclusiveLocks)意向锁(IntentionLocks)记录锁(recordLocks)间隙锁(GapLocks)临键锁(Next-KeyLocks)小结数据库的锁是在
多线程高并发
的情况下用来保证数据
Bolon0708
·
2019-07-31 13:09
mysql
JAVA
多线程高并发
面试题总结
ReadMe:括号里的内容为补充或解释说明。多线程和高并发是毕业后求职大厂面试中必问的知识点,自己之前总是面试前才去找相关的知识点面试题来背背,隔段时间又忘了,没有沉淀下来,于是自己总结了下相关的知识点。多线程1.什么是进程?线程?区别?1)进程是一个独立的运行环境,它可以被看作是一个程序或者一个应用。而线程是在进程中执行的一个任务。eg:打开360安全卫士,它本身是一个程序,也是一个进程,它里面
佛大Java程序员
·
2019-07-14 17:00
多线程高并发
内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复“多线程聚合”当我们在谈论高并发的时候究竟在谈什么?Java并发系列(1)AbstractQueuedSynchronizer源码分析之概要分析Java并发系列(2)AbstractQueuedSynchronizer源码分析之独占模式Java并发系列(3)AbstractQueuedSynch
Java知音*
·
2019-07-09 10:00
面试你应该知道的 MySQL 的锁
背景数据库的锁是在
多线程高并发
的情况下用来保证数据稳定性和一致性的一种机制。MySQL根据底层存储引擎的不同,锁的支持粒度和实现机制也不同。MyISAM只支持表锁,InnoDB支持行锁和表锁。
茗酒佳程
·
2019-05-30 09:40
数据库
【多线程】多线程的项目实战
每个学科有好几个班上,考完试后,老师想打印学生答题试卷(因为是上机考试),即涉及到了批量打印试卷,并且下载时将这些试卷打成一个压缩包,此功能用到了多线程1.为什么用多线程 充分利用cpu资源2.什么时候用
多线程高并发
王如霜
·
2019-05-28 17:09
------多线程
Java
多线程高并发
编程 笔记(二)
1.单例模式(在内存之中永远只有一个对象)1.1多线程安全单例模式——不使用同步锁1publicclassSingleton{2privatestaticSingletonsin=newSingleton();///直接初始化一个实例对象3privateSingleton(){///private类型的构造函数,保证其他类对象不能直接new一个该对象的实例4}5publicstaticSingle
PJQOOO
·
2019-05-27 22:00
Java
多线程高并发
编程 笔记(一)
本篇文章主要是总结Java多线程/高并发编程的知识点,由浅入深,仅作自己的学习笔记,部分侵删。一.基础知识点1.进程于线程的概念2.线程创建的两种方式注:publicvoidrun()方法提供了线程实际工作的代码;继承Thread类的方法存在单继承的缺陷;Runnable的代码可以被多个线程(Thread实例)共享,适合于多个线程处理统一资源的情况;3.Thread类的常用方法4.Java线程正确
PJQOOO
·
2019-05-27 07:00
多并发下的hashmap的不安全及解决办法
转发:https://blog.csdn.net/Dazhu233/article/details/79679088多线程并发下的HashMapHashMap在
多线程高并发
下时线程不安全的,可能会出现cpu
蓝猫_虹
·
2019-04-19 09:25
Java开发
java如何统计
多线程高并发
下的总执行时间
办法是使用java.util.concurrent包下的计数器工具类CountDownLatch,看demo,本demo巧妙的使用了CountDownLatch让多线程模拟高并发以及所有线程执行完之后的耗时。privatestaticDatestartDate;privatestaticDateendDate;privatestaticStringstartTime;privatestaticSt
志飞
·
2019-04-16 11:39
java开发步步为营
多线程高并发
编程学习笔记四
高并发编程学习笔记四:线程池1.Executor:执行器,interface用来执行某一个任务的,只有一个方法voidexecute(Runnablecommand)//运行一个实现了runnable的操作,可以交给一个线程使用e.g:publicclassMyExecutorimplementsExecutor{@Overridepublicvoidexecute(Runnablecommand
orz024572
·
2019-03-09 18:39
JavaSE
【ActiveMQ 主从集群】的三种方式 和 优点
假如有500w请求同时请求服务器,时间也很短,这就是
多线程高并发
的情况,然后我们在服务器的前面添加一个MQ,这500w个请求,每个请求过来都给mq发送一个消息,然后这个消息就保存在了MQ中,因为我们使
杨宗健
·
2019-03-07 21:01
java中间件
Java
多线程高并发
,代码示例(四)
前言项目主体源码可以从ConcurrenceBasics获得,喜欢的朋友可以点个star~。卖火车票问题(一)/***有N张火车票,每张票都有一个编号,同时有10个窗口对外售票。*分析下面的程序可能会产生哪些问题?*重复销售?超量销售?*问题:有可能卖重复,remove也不是原子性的。*/publicclassTicketSeller1{staticListtickets=newArrayList
XIPIKER
·
2019-03-05 17:34
Java
Java
多线程高并发
,代码示例(一)
前言项目主体源码可以从ConcurrenceBasics获得,喜欢的朋友可以点个star~。参考文献在参考资料部分有介绍。对某个对象加锁/***synchronized关键字*对某个对象加锁*/publicclassT{privateintcount=10;privateObjecto=newObject();publicvoidm(){//任何线程要执行下面代码,必须先拿到o锁synchroni
XIPIKER
·
2019-02-26 17:42
Java
多线程高并发
一个同步方法可以调用另一个同步方法,一个线程对象已经拥有某个对象的锁,再次申请的时候仍会得到该对象的锁。也就是说synchronized获得的锁是可重入的volitile关键字,使一个变量在多个线程间可见防止并发的应用场景:扣钱,秒杀多线程应用场景:用户量较大。优点:效率高。常见使用场景:ajax异步请求;1、后台任务,例如:定时向大量(100w以上)的用户发送邮件;2、异步处理,例如:发微博、记
sherry28710139
·
2018-12-20 17:21
SpringBoot实战实现分布式锁一之重现
多线程高并发
场景
实战前言:上篇博文我总体介绍了我这套视频课程:“SpringBoot实战实现分布式锁”总体涉及的内容,从本篇文章开始,我将开始介绍其中涉及到的相关知识要点,感兴趣的小伙伴可以关注关注学习学习!!工欲善其事,必先利其器,介绍分布式锁使用的前因后果之前,得先想办法说清楚为啥需要分布式锁以及如何才需要将分布式锁搬上用场!!其中,该课程的学习链接:http://edu.51cto.com/course/1
steadyjack
·
2018-12-10 22:12
分布式锁
分布式
jmeter
Dubbo实战分布式服务调度
Java学习资源 -(持续更新...)
年最新包括源码原理分析)+SpringCloud微服务架构(2017年最新价值¥69和¥299两套实战)、大数据开发(龙果学院价值¥299元)、Linux运维、MySQL性能调优(这些DB优化都是精华)、
多线程高并发
详解
JackIT健_686
·
2018-10-19 17:18
多线程高并发
相关基础概念
程序、进程、线程程序:程序是静态的概念,windows下通常指exe文件,程序也可以说是编译后的文件(.jar、.war等);操作系统打开一共应用程序,实际上是新打开了一个进程。进程:进程是动态的概念,是程序运行时的状态。一个程序可以有多个进程,进程之间互不影响彼此隔离。线程:线程是进程里的一个基本任务,每个线程都有自己的功能,线程是CPU分配与调度的基本单位(即:CPU分配调度是面向于线程的;线
justry_deng
·
2018-10-10 02:46
Java多线程与高并发
2018年 最新Java面试题
如果是面试高级需要多了解一下
多线程高并发
以及底层原理源码等知识。
lv_hang515888
·
2018-09-19 14:40
java
如何解决
多线程高并发
场景下的 Java 缓存问题?
在
多线程高并发
场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache
CSDN资讯
·
2018-09-17 15:49
MySQL架构组成--物理文件组成
一、MySQLServer简介什么是MySQLMySQL是由MySQLAB公司(目前已经被SUN公司收归麾下)自主研发的,目前IT行业最流行的开放源代码的数据库管理系统之一,它同时也是一个支持
多线程高并发
多用户的关系型数据库管理系统
data eudemon
·
2018-08-23 10:09
mysql-base
mysql-configure
google Guava Cache使用--向本地缓存的,轻量级的Cache,适合缓存少量数据
在
多线程高并发
场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如Redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache
qb170217
·
2018-08-07 16:22
Cache
多线程高并发
总结
1、synchronized对某个对象加锁(互斥锁),申请的纪录在堆内存里的对象,执行完代码就释放。2、synchronized锁的是对象,而不是代码块。3、在方法上加synchronized相当于synchronized(this)。4、synchronized用在静态方法上,相当于synchronized(T.class),即锁住类对象。5、各个代码块之间没有原子性,执行需要重新争夺CPU执行
ThunderclapT丶
·
2018-07-21 22:15
多线程高并发
【
多线程高并发
】ThreadLocal,高并发下的单例模式(转)
2.3ThreadLocalThreadLocal概念:线程局部变量,是一种多线程间并发访问变量的解决方案。与其synchronized等加锁方式不同,THreadLocal完全不提供锁,而使用空间换时间的手段,为每个线程提供变量的独立副本,以保障线程安全。在高并发量或者竞争激烈的场景,使用ThreadLocal可以在一定程度上减少锁竞争。当使用ThreadLocal维护变量时,ThreadLoc
揣兜丶
·
2018-07-17 11:10
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
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
其他