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
并发编程同步锁
ConcurrentHashMap HashMap HashTable区别
ConcurrentHashMapHashMapHashTableHashTable比HashMap低因为线程安全要比较
同步锁
HashTable1丶是一个包含单向链的二维数组,table数组中是entry
Xr丶_c967
·
2023-10-31 04:49
并发编程
硬件理解:CPU缓存架构与缓存一致性协议(JMM在硬件层面的理解)
CPU高速缓存CPU缓存即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,减少CPU的等待时间,提高了系统的效率。局部性原理在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片
程序java圈
·
2023-10-31 02:31
并发编程
缓存
架构
硬件架构
Java
并发编程
实战
第一章编写线程安全的代码,本质上就是管理对状态(state)的访问,通常是共享的、可变的状态。--所以不变的状态在多线程里可以用final修饰只要有一个以上的线程访问给定状态的变量,并且其中某个线程会写入该变量,就必须用同步来协调对该变量的访问。---所以没有写只有读就可以随便修复线程不安全性:3.1不要用多线程访问同一个变量3.2使变量不可变3.3使用同步关键字修饰无状态对象永远是线程安全的。-
心疼我这个废物
·
2023-10-31 00:04
synchronized
同步锁
的思考
经过前面的分析,我们大概对
同步锁
有了一些基本的认识,
同步锁
的本质就是实现多线程的互斥,保证同一时刻只有一个线程能够访问加了
同步锁
的代码,使得线程安全性得到保证。
明雨星云
·
2023-10-30 22:28
JAVA
java
开发语言
synchronized同步锁
多线程
并发编程
17-线程池ThreadPoolExecutor源码剖析
今天来说一说线程池ThreadPoolExecutor,线程池主要解决两个问题:一是当执行大量异步任务时线程池能够提供较好的性能。在不使用线程池时,每当需要执行异步任务时直接new一个线程来运行,而线程的创建和销毁都需要开销。线程池中的线程是可以复用的,不需要每次执行异步任务都进行创建线程,从而减少了开销。二是线程池提供了一种资源限制和管理的手段,例如限制线程的个数、动态增加线程的个数、缓存异步任
Demo_zfs
·
2023-10-30 21:09
并行和并发有什么区别?
并行和并发并行和并发最早其实描述的是Java
并发编程
里面的概念。他们强调的是CPU处理任务的能力。简单来说:并发,就是同一个时刻,CPU能够处理的任务数量,并且对于应用程序来说,不会出现卡顿现象。
无语堵上西楼
·
2023-10-30 21:04
java面试题
java
开发语言
Java多线程面试题总结
JVM会把该线程放入"等待池"中.进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才被唤醒,wait是object类的方法(2)同步阻塞:运行的线程在获取对象的
同步锁
时
Xqhardstudy
·
2023-10-30 20:55
计算机总复习
多线程
Java中的锁升级
Java中锁升级的过程首先先看一下《Java
并发编程
的艺术》中的一段话,也是对整个锁升级过程的一个总结和描述。
既然头发留不住
·
2023-10-30 18:12
多线程
java
多线程
【Java进阶】synchronized底层如何实现?什么是锁的升级、降级?
我在上一讲对比和分析了synchronized和ReentrantLock,算是专栏进入
并发编程
阶段的热身,相信你已经对线程安全,以及如何使用基本的同步机制有了基础,今天我们将深入了解synchronize
赛博老登
·
2023-10-30 18:07
Java核心技术面试精讲
Java
锁机制
Java
并发编程
:锁
1.Lock从JDK5.0开始,Java提供了更强大的线程同步机制——通过显式定义
同步锁
对象来实现同步。
同步锁
使用Lock对象充当。
coder1qiang
·
2023-10-30 18:35
Java并发编程
并发编程
多线程
java
原子类:Java
并发编程
的利器
在多线程环境下,确保数据的一致性和原子性是至关重要的。Java提供了一些原子类,用于解决多线程并发问题。这些原子类能够确保操作在多线程环境下是原子的,即不会被其他线程干扰。本文将介绍Java中的原子类及其应用。一、原子类概述原子类是Java提供的一组实现原子操作的类,包括AtomicInteger、AtomicLong、AtomicBoolean等。这些类中的每个方法都是原子的,这意味着它们在并发
佩奇的胖爸爸
·
2023-10-30 18:03
java
数据库
开发语言
Python 异步 IO
并发编程
详解
一、多线程、多进程和线程池编程1.1关于Python中的GIL(全局解释器锁)1.2Python多线程编程threading1.3线程间通信:共享变量和Queue1.4线程同步:Lock、RLock1.5线程同步:condition、Semaphore使用1.6ThreadPoolExecutor线程池及相关分析1.7multiprocessing多进程编程及与多线程对比二、协程和异步IO2.1并
you的日常
·
2023-10-30 16:17
并发编程
-常用并发设计模式
1.优雅终止线程的设计模式思考:在一个线程T1中如何优雅的终止线程T2?错误思路1:使用线程对象的stop()方法停止线程stop方法会真正杀死线程,如果这时线程锁住了共享资源,那么当它被杀死后就再也没有机会释放锁,其它线程将永远无法获取锁。错误思路2:使用System.exit(int)方法停止线程目的仅是停止一个线程,但这种做法会让整个程序都停止正确思路:两阶段终止模式1.1两阶段终止(Two
长情知热爱
·
2023-10-30 16:18
设计模式
java
开发语言
Go语言学习笔记—golang
并发编程
之channel
视频来源于B站Go语言基础进阶视频av56860636文章为自己整理的学习笔记,侵权即删,谢谢支持!文章目录前言一channel的基本介绍1.1通道的概念1.2通道的声明1.3channel的数据类型1.4注意事项二channel的使用2.1发送与接收2.2发送和接收默认是阻塞的2.3死锁三channel的遍历和关闭3.1channel的关闭3.2channel的遍历四非缓冲通道与缓冲通道4.1非
PPPsych
·
2023-10-30 14:56
Go语言进阶学习笔记
学习
golang
二、
并发编程
之---并发的三大特性
1、可见性1)是什么可见性是一个线程修改了共享变量,另一个线程能立马看到2)为什么会出现①操作系统在操作系统中,每个cpu都是从自己的缓存中读取数据,缓存中的数据是从主内存中获取的。可能在某一时刻,其中一个cpu更改了自己的缓存数据,将数据更新主存中,而另一个cpu读取数据时,只是读取自己的缓存,缓存数据跟主内存数据不一致。总结:针对多核cpu,每个cpu只读取自己的缓存数据导致了可见性。对于单c
tuantuanyuyu
·
2023-10-30 13:22
java基础
java
java
开发语言
一、
并发编程
之----AQS上
并发编程
设计比较广泛,那我们就先从线程、进程开始吧一、线程、进程二、并发1、为什么会出现2、是什么并发是针对一个共享变量,多个线程同一时间去编辑该共享变量。
tuantuanyuyu
·
2023-10-30 13:49
java基础
java
并发编程
【
并发编程
十:CompletableFuture的应用】
上一篇【
并发编程
九:线程安全问题分析及锁的介绍(2)synchronized】一、CompletableFutureCompletableFuture实现了CompletionStage接口和Future
北城小林
·
2023-10-30 12:01
07_并发编程专题
java
前端
大数据
【
并发编程
十一:CopyOnWriteMap 和 CopyOnWriteArraySet】
上一篇【
并发编程
十:CompletableFuture的应用】一、介绍CopyOnWriteMap是org.apache.kafka.common.utils中个类,CopyOnWriteArraySet
北城小林
·
2023-10-30 12:25
07_并发编程专题
java
由一个单例模式引发的思考-holder类方式
前言:最近在看《Java
并发编程
实践》,里面提到了一种实现单例模式的方式,并大致说明了机制,但仍不是很清晰,今日有空,查阅相关书籍,尝试解释其中道理。
不随意的风
·
2023-10-30 12:31
JVM
设计模式
单例模式
java
jvm
Go语言的Mutex
关键部分在跳转到互斥体之前,了解
并发编程
中临界区的概念非常重要。当程序并发运行时,修改共享资源的代码部分不应被多个Goroutines同时访问。这部分修改共享资源的代码称为临界区。
可乐Vayne
·
2023-10-30 11:42
Go语言教程
golang
数据库
java
Java 中的 synchronized
同步锁
导致线程安全问题的根本原因在于,存在多个线程同时操作一个共享资源,要想解决这个问题,就需要保证对共享资源访问的独占性,因此人们在Java中提供了synchronized关键字,我们称之为
同步锁
,它可以保证在同一时刻
明雨星云
·
2023-10-30 08:12
java
synchronized同步锁
【原创】腾讯面试官:线程池要设置多大
Hunter心想,这不难啊,曾经在《Java
并发编程
》一书中有看到过线程池中线程数目设置的讲述,于是张
Dali王
·
2023-10-30 05:33
并发编程
7:线程池的使用
目录1、在任务与执行策略之间的隐性耦合1.1线程饥饿死锁1.2运行时间较长的任务2、设置线程池的大小3、配置ThreadPoolExecutor3.1线程的创建与销毁3.2管理队列任务3.3饱和策略3.4线程工厂3.5在调用构造函数后再定制ThreadPoolExecutor4、扩展ThreadPoolExecutor1、在任务与执行策略之间的隐性耦合只有当任务都是同类型的并且相互独立时,线程池的
swadian2008
·
2023-10-30 02:35
并发编程
并发编程
并发编程
6:任务或线程的取消与关闭
目录1、如何取消一个任务1.1-任务的中断机制1.2-中断策略1.3-响应中断1.4-通过Future来实现取消1.5-处理不可中断的阻塞2、停止基于线程的服务(执行器)2.1-使用计数器,记录提交的任务数量2.2-使用毒丸对象2.3-只执行一次的服务3、处理非正常的线程终止3.1-未捕获异常的处理4、JVM关闭4.1-关闭钩子4.2-守护线程4.3-终结器Java提供了中断(Interrupti
swadian2008
·
2023-10-30 02:35
并发编程
并发编程
并发编程
什么是
并发编程
?并行:在同一个时间节点上,多个线程同时执行(是真正意义上的同时执行)并发:一个时间段内,多个线程依次执行。
并发编程
:在例如买票、抢购、秒杀等等场景下,有大量的请求访问同一个资源。
余笙zh
·
2023-10-30 01:07
java
jvm
开发语言
并发编程
之——AQS原理和阻塞队列变化
1、AQS简介2、源码分析2.1线程阻塞2.2线程唤醒1、AQS简介AQS全名:AbstractQueuedSynchronizer,它就是Java的一个抽象类,它的出现是为了解决多线程竞争共享资源而引发的安全问题,细致点说AQS具备一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的线程加入到队列中,队列是双向队列。常用的实现类是Reentrant
lsunwing
·
2023-10-30 00:53
java
AQS
重入锁
走进AQS体系(二)—— 条件队列
概述条件队列在
并发编程
中是用于对一类事务在处理时机未到的情况下,让负责处理此类事务的线程进行阻塞,当时机成熟的时候,将其唤醒,使其继续往下处理这件事务;条件队列针对阻塞于某类条件的线程进行集中化的队列管理
一届贫农
·
2023-10-30 00:21
JDK
并发
队列
多线程
java
面试
CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的详细解析
本文主要介绍和对比我们常用的几种并发工具类,主要涉及CountDownLatch、CyclicBarrier、Semaphore、Exchanger相关的内容,如果对多线程相关内容不熟悉,可以看笔者之前的一些文章:《Java
并发编程
AnonyStar
·
2023-10-29 23:40
谈谈iOS多线程的锁
image前言iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于
并发编程
锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。
KingWorld
·
2023-10-29 14:21
Go语言
并发编程
2 - 同步
0前言Go语言除了可以使用通道进行多个goroutine间数据交换的方式之外,还提供了传统的同步工具。它们都在Go的标准代码包sync和sync/atomic中,包括原子操作、互斥锁、条件变量以及等待组。1原子操作原子操作是指执行过程不能被中断的操作。在针对某个值的原子操作执行过程中,CPU绝不会再去执行其他针对该值的操作,无论这些其他操作是否为原子操作。Go语言提供的原子操作都是非侵入式的。它们
yunfan188
·
2023-10-29 14:12
#
Go语言学习笔记
go语言
golang
并发编程
同步
Java
并发编程
学习笔记
Java
并发编程
学习笔记CPU多级缓存模型计算机为什么要设计高速缓存架构CPU与主存运行速度的差异CPU长时间空闲引入高速缓存,减少CPU等待时间,提升运行效率多核CPU的多级缓存架构是怎么样的多核CPU
NewBee.Mu
·
2023-10-29 13:27
从头开始学java
知识点总结
java
java
[Java]重学Java-如何保证线程安全
-《
并发编程
的艺术》提供了互斥访问,同一时刻只能有一个线程对它进行操作。在Java中提供了原子类(Atomic)来保证原子性,但是我们平时使用的i++这种,其实
AbstractCulture
·
2023-10-29 10:35
linux下的
并发编程
详解
1.基于进程的
并发编程
我们可以利用熟悉的fork、execve及waitpid函数来开发基于进程的
并发编程
。
Leon_George
·
2023-10-29 10:42
linux
并发编程
驱动开发
应用开发
图解java.util.concurrent并发包源码系列——深入理解Semaphore、CountDownLatch、CyclicBarrier
并发编程
三剑客
图解java.util.concurrent并发包源码系列——深入理解Semaphore、CountDownLatch、CyclicBarrier
并发编程
三剑客SemaphoreSemaphore的例子和使用
黄俊懿
·
2023-10-29 10:24
java
开发语言
后端
并发编程
JUC
C++ 线程的使用
C++11之前,C++语言没有对
并发编程
提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。
程序员编程指南
·
2023-10-29 10:53
java
python
c++
多线程
编程语言
并发编程
java.util.concurrent包
JUCjava.util.concurrent包,这个包是从JDK1.5开始引入的,在此之前,这个包独立存在着,它是由DougLea开发的,名字叫backport-util-concurrent,在1.5开始引入java,命名路径为java.util.concurrent,其中的基本实现方式,也有所改变。(来源于一位大牛的blog:深入浅出JavaConcurreny(http://www.blo
伦斯特
·
2023-10-29 10:23
深入浅出java
concurrent
Java高
并发编程
学习(三)java.util.concurrent包
简介我们已经学习了形成Java并发程序设计基础的底层构建块,但对于实际编程来说,应该尽可能远离底层结构。使用由并发处理的专业人士实现的较高层次的结构要方便得多、要安全得多。例如,对于许多线程问题,可以通过使用一个或多个队列以优雅且安全的方式将其形式化。生产者线程向队列插人元素,消费者线程则取出它们。使用队列,可以安全地从一个线程向另一个线程传递数据。从Java5开始,引入了一个高级的处理并发的ja
小夏陌
·
2023-10-29 10:49
Java开发
java
并发编程
多线程
多线程&线程池
线程安全问题当多个线程同时操作同一个共享资源的时候,可能会出现结果不符合预期的问题解决安全问题方式一:同步代码块作用:把访问共享资源的核心代码给上锁,以此保证线程安全格式:synchronized(
同步锁
IT_Rocter
·
2023-10-29 08:25
jvm
1.
并发编程
的挑战
1.
并发编程
的挑战1.1上下文切换1.1.1多线程一定快吗1.1.2测试上下文切换次数和时长1.2.3如何减少上下文切换1.2.4减少上下文切换实战1.2死锁1.3资源限制的挑战1.4小结1.4小结
并发编程
的目的是为了让程序运行得更快
白茶清酒
·
2023-10-29 07:44
Java并发编程的艺术
java
《Java线程与
并发编程
实践》学习笔记1(Thread 和 Runnable)
(最近刚来到平台,以前在CSDN上写的一些东西,也在逐渐的移到这儿来,有些篇幅是很早的时候写下的,因此可能会看到一些内容杂乱的文章,对此深感抱歉,以下为正文)引子本篇作为笔者对于《Java线程与
并发编程
实践
moonfish1994
·
2023-10-29 06:03
synchronized 的锁类型
之前的文章有讲过对
同步锁
的理解,实现
同步锁
的方式无非是多个线程抢占一个互斥变量,如果抢占成功则表示获得了锁,而没有获得锁的线程则阻塞等待,直到获得锁的线程释放锁如图所示,在MarkWord中,我们发现锁的类型有偏向锁
明雨星云
·
2023-10-29 03:23
JAVA
java
synchronized锁类型
JAVA Future类详解
前言在高性能编程中,
并发编程
已经成为了极为重要的一部分。在单核CPU性能已经趋于极限时,我们只能通过多核来进一步提升系统的性能,因此就催生了
并发编程
。
Java开发师
·
2023-10-29 03:47
java
开发语言
javascript
数据结构
Java
并发编程
指南:如何正确使用信号量和线程池熔断机制
前言:在分布式系统中,选择合适的熔断机制是保护系统免受故障影响的关键。本文将介绍使用信号量和线程池两种常见的熔断机制,并提供Java和SpringCloudAlibaba框架下的示例代码,帮助您深入理解和应用。1.信号量熔断机制信号量熔断机制基于并发请求的数量进行熔断,可限制系统的并发访问量。它适用于资源有限且对请求响应时间要求较高的场景。下面是使用Java和SpringCloudAlibaba框
热心码民阿振
·
2023-10-29 02:59
Java
java
开发语言
spring
cloud
分布式
Go
并发编程
文章目录用goroutine和通道实现并发用sync实现并发互斥锁sync.Once结构体同步等待组zync.WaitGroup竞态检测器应用自增整数生成器并发消息发送器多路复合计算器用select关键字创建多通道监听器多路复合计算器超时处理用无缓冲通道阻塞主线程用筛法求素数创建随机数生成器创建一个定时器GoWeb爬虫用goroutine和通道实现并发packagemainimport("fmt"
小蒋的技术栈记录
·
2023-10-28 23:53
Go后端
golang
开发语言
后端
【ChatGPT系列】ChatGPT:创新工具还是失业威胁?
推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2023-10-28 20:56
s99
其他
chatgpt
《Java
并发编程
实战》机械工业出版社 童云兰译 PDF下载(Java Concurrency in Practice中文版)
下载地址:http://www.ishare1.cn/archives/813.html《Java
并发编程
实战》机械工业出版社童云兰译PDF电子书下载(JavaConcurrencyinPractice
sunjian286
·
2023-10-28 19:26
python
并发编程
一、引子顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统二、总结即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多
100斤的瘦子_汤勇
·
2023-10-28 17:39
J.U.C:ReentrantLock(AbstractQueuedSynchronized)
J.U.C简介 Java.util.concurrent是在
并发编程
中比较常用的工具类,里面包含很多用来在并发场景中使用的组件。比如线程池、阻塞队列、计时器、同步器、并发集合等等。
沈先生的影子
·
2023-10-28 17:33
并发编程
系列---【线程池七大核心参数】
一、七大核心参数1.corePoolSize核心线程数2.maximumPoolSize最大线程池参数3.keepAliveTime任务结束后,线程存活此处指定时间后才会被释放4.TimeUnit上一个参数的单位,常用s,ms5.BlockingQueue队列,当核心线程用完时,任务放进队列6.ThreadFactory线程工厂7.丢弃策略默认Abort,直接丢弃,并抛出异常二、线程池原理所有线程
少年攻城狮
·
2023-10-28 17:36
java
jvm
开发语言
大厂面试题-Java
并发编程
基础篇(五)
目录一、为什么ConcurrentHashMap中key不允许为null考察目标问题解析回答二、ThreadLocal会出现内存泄漏吗?考察目的问题解析回答三、什么是CompletableFuture?问题分析问题解答四、什么条件下会产出死锁,如何避免死锁?1、什么是死锁?2、产生死锁的原因3、如何避免死锁?五、ConcurrentHashMap是如何保证线程安全的?1、JDK1.7实现原理2、J
似来
·
2023-10-28 16:40
面试题
java
数据结构
开发语言
上一页
28
29
30
31
32
33
34
35
下一页
按字母分类:
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
其他