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
python高级编程并发编程
多线程——
并发编程
三大特性
并发编程
三大特性1、可见性:各线程之间对共享变量的可见性,即一个线程更改了共享变量的值,其他线程也能看到并更新到自己线程中的值。
RhineHe_hjs
·
2023-09-13 14:56
缓存
java
开发语言
【JVM
并发编程
专题】——多线程基础
基础——线程内核进程基本定义:进程是资源分配的最小单位,比如说向操作系统征用4G的内存区域,所以不同进程虚拟内存空间的地址是独立,如果进程要通信就必须通过特殊的方式通信,比如:FIFO、管道消息、共享内存、队列、信号量,当然这个不作为本章的重点内容;线程基本定义:线程是CPU调度的最小单位,比如说你的一个JVM虚拟机中不同的需要对不同ip的用户请求来建立线程来处理,供cpu调度,而这些过程中产生的
GodSchool
·
2023-09-13 14:26
JVM并发编程专题
并发编程
多线程
多线程与高并发——
并发编程
(8)
文章目录八、异步编程1FutureTask应用&源码分析1.1FutureTask介绍1.2FutureTask应用1.3FutureTask源码分析1.3.1FutureTask中的核心属性1.3.2FutureTask的run方法1.3.3FutureTask的set&setException方法1.3.4FutureTask的cancel方法1.3.5FutureTask的get方法1.3.
斗志昂-杨
·
2023-09-13 14:53
Java多线程并发编程
并发编程
异步编程
Future
GO语言网络编程(
并发编程
)定时器
GO语言网络编程(
并发编程
)定时器1、定时器1.1.1定时器Timer:时间到了,执行只执行1次packagemainimport("fmt""time")funcmain(){//1.timer基本使用
lucky九年
·
2023-09-13 11:22
GO
golang
开发语言
后端
并发系列(二)-----Java内存模型
一简介在
并发编程
中,两个线程(A、B)同时操作一个普通变量的时候会出现线程A在操作变量时线程B也将变量操作了,此时线程A是无法感知变量发生变化的,造成变量改变错误。
Alemand
·
2023-09-13 09:29
java与golang对比
2)golang引入了协程,并发粒度相对java更小,并且可控,性能也更高3)golang令人诟病的GC问题已经大大解决,由原来秒级到现在微妙级4)golang
并发编程
学习成本低
qq_25705173
·
2023-09-13 07:55
java
【转存】从 JMM 透析 volatile 与 synchronized 原理
在面试、
并发编程
、一些开源框架中总是会遇到volatile与synchronized。synchronized如何保证并发安全?volatile语义的内存可见性指的是什么?
艾利克斯冰
·
2023-09-13 06:10
Java
测试工具
Java
并发编程
实战 第13章 显示锁
内置锁的局限性:无法中断一个正在等待获取锁的线程,或者无法在请求获取一个锁时无限的等待下去。内置锁必须在获取该锁的代码块中释放,这就简化了编码工作,并且与异常处理操作实现了很好的交互,但却无法实现非阻塞结构的加锁规则。这都是使用synchronnized的原因。13.1Lock与ReentrantLock必须在finally中释放锁Locklock=newReentrantLock();...lo
程人之美
·
2023-09-13 05:01
并发编程
java
多线程
并发编程
Java
并发编程
实战 第11章 性能与可伸缩性
线程的主要目的是提高程序的运行性能。提高资源利用率,系统响应性。11.1对性能的思考多线程开销:线程之间的协调(加锁、触发信号、内存同步),上下文的切换,线程创建和销毁,线程的调度。11.1.1性能与可伸缩性可伸缩性:当增加计算资源(CPU、内存、存储容量、IO),程序的吞吐朗或者处理能力相应增加。11.1.2评估各种性能权衡因素避免不成熟的优化,首先使程序正确,然后提高运行速度。11.2Amda
程人之美
·
2023-09-13 05:31
并发编程
多线程
java
近期学习任务
uniapp:uniapp零基础sa-token:satoken文档activiti:千锋教育Java进阶Activiti7工作流系统精讲教程juc:JavaJUC
并发编程
已完结,推荐网址:白马spring
ps酷教程
·
2023-09-12 21:16
收藏
学习
【数据结构-二叉树】二叉树
推荐:kuan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2023-09-12 21:39
s6
算法与数据结构
数据结构
【JUC】Java
并发编程
从挖坑到入土全解(一)
什么是JUCJUC全称java.util.concurrent,是在
并发编程
中使用的工具包为什么会出现多线程硬件方面
AQin1012
·
2023-09-12 20:50
Java
JUC
java
thread
juc
多线程
java
并发编程
实战笔记:线程池的使用
任务与策咯之间的耦合上文中说了java通过excutor框架把任务的执行和提交解耦了,实际上对于任务和执行策咯,有时候是有一定的耦合的,并不是所有的任务都能用任意的执行策略。比如,一个任务依赖别的任务,只能在一个线程里执行的任务,响应特别敏感的任务(GUI),这些任务都不能用普通的线程池从,而是要为任务定制相应的执行策略。当任务彼此独立,且类型相同时,线程池能发挥最大的作用线程饥饿死锁当线程池里的
xuefeiliuyuxiu
·
2023-09-12 19:42
java
【并发】一文搞懂多线程和
并发编程
线程-Thread线程是CPU调度和执行的最小单位,一个进程可以拥有一个或多个线程。在一个进程中,如果开辟了多个线程,线程的运行将由CPU调度器来安排。在单核CPU下,即使用了多线程,在同一个时间点,CPU只能执行单个线程的代码,因为线程之间切换的很快,所以就感觉多个线程是在同时做一件事。这种现象也叫做并发。创建线程在java中,创建线程有三种方式,下面一一介绍:继承Thread类第一步,首先定义
一场雪ycx
·
2023-09-12 15:44
并发
java
多线程
《Java
并发编程
实践》五(3):原子变量和非阻塞同步
java并发库(java.util.concurrent)提供了很多(相比锁)性能更优越的同步设施,比如ConcurrentLinkedQueue。本章的主题,是研究此类并发装置的性能秘密:原子变量和非阻塞同步。锁的性能劣势对现代JVM来说,在锁未发生竞争的情况下,JVM执行“加锁、释放锁”操作是非常快的;但是一旦发生竞争,就需要执行系统调用来挂起竞争失败的线程,等将来锁释放时再唤醒它们。挂起和唤
longhuihu
·
2023-09-12 15:13
java并发
算法
java
并发编程
多线程
并发编程
之CAS和Atomic
Atomic与CAS以及产生的ABA问题什么是原子操作Atomic先来看个例子了解下CAS给大家看个手写CAS例子Automic三大APIAtomicIntegerArrayAtomicReferenceArrayAtomicIntegerFieldUpdaterAtomicReferenceFieldUpdaterABA问题及解决内存屏障什么是原子操作原子(atom)本意是“不能被进一步分割的最
烟花丿易冷
·
2023-09-12 15:13
并发编程
多线程
java
thread
多线程和
并发编程
(2)—CAS和Atomic实现的非阻塞同步
在
并发编程
中实现原子操作可以使用锁,锁机制满足基本的需求是没有问题的了,但是有的时候我们的需求并非这么简单,我们需要更有效,更加灵活的机制,synchronized关键字是基于阻塞的锁机制,也就是说当一个线程拥有锁的时候
yangnk42
·
2023-09-12 15:12
并发编程
GO语言网络编程(
并发编程
)Channel
GO语言网络编程(
并发编程
)Channel1、Channel1.1.1Channel单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。
lucky九年
·
2023-09-12 14:58
GO
网络
golang
服务器
《Java
并发编程
实战》读书笔记二:构建线程安全
一、用组合来实现线性安全1.设计线程安全的类设计线程安全类的三个基本要素:1.找出构成对象状态的所有变量2.找出约束状态变量的不变性条件3.建立对象状态的并发访问管理策略要分析对象的状态,首先从对象的域开始。如果对象所有的域都是基本类型的变量,那么这些域将构成对象的全部状态;如果对象的域中引用了其他对象,那么该对象的状态将包含被引用的对象的域。2.实例封闭当一个对象被封装到另一个对象中,能够访问到
小七奇奇
·
2023-09-12 14:55
Golang(四)语言特性(上)
Golang是一种强类型的通用系统编程语言,具有垃圾回收机制并明确支持
并发编程
。
云时代的运维开发
·
2023-09-12 13:08
Java
并发编程
线程协作、控制并发流程
1.什么是控制并发流程控制并发流程的工具类,作用就是帮助我们程序员更容易的让线程之间合作让线程之间相互配合,来满足业务逻辑比如让线程A等待线程B执行完毕后再执行等合作策略有哪些控制并发流程的工具类?类作用说明Semaphore信号量,可以通过控制“许可证”的数量,来保证线程之间的配合线程只有拿到“许可证”后才能继续运行。相比于其他同步器更灵活CyclicBarrier线程会等待,直到足够多线程达到
香沙小熊
·
2023-09-12 12:15
Java 多线程系列Ⅵ(
并发编程
的六大组件)
ReentrantLock三、Atomic原子类四、线程池五、Semaphore六、CountDownLatch前言JUC(Java.util.concurrent)是Java标准库中的一个包,它提供了一组
并发编程
工具
不摸鱼的程序员
·
2023-09-12 11:22
并发编程
java
并发编程
JUC组件
java-ee
GO语言网络编程(
并发编程
)Goroutine池
GO语言网络编程(
并发编程
)Goroutine池1.Goroutine池1.1.1.workerpool(goroutine池)本质上是生产者消费者模型可以有效控制goroutine数量,防止暴涨需求:
lucky九年
·
2023-09-12 10:32
GO
golang
开发语言
后端
显式锁与隐式锁的区别
在面试的过程中有可能会问到:在Java
并发编程
中,锁有两种实现:使用隐式锁和使用显示锁,其中它们分别是什么?两者的区别是什么?
所遇所思
·
2023-09-12 10:00
Java
java
并发编程
SynchronousQueue详解
3.1.1TransferStack实现3.1.2TransferQueue实现3.2外部方法3.2.1put(Ee)3.2.2offer(Ee)3.2.3take()3.2.4poll()4总结java
并发编程
系列文章目录
java爬坑中
·
2023-09-12 10:18
java并发编程
java
开发语言
【异步VS多线程】异步VS多线程区别
异步VS多线程区别1、异步异步概念:异步是
并发编程
的一种形式,在同一时刻可以独立于主程序外,可以并发执行另外一些任务。
是五月吖
·
2023-09-12 10:15
c#
java
并发编程
CountDownLatch详解
文章目录1CountDownLatch是什么2核心属性详解3核心方法详解3.1countDown()3.2await()4总结java
并发编程
系列文章目录1CountDownLatch是什么java这个类上已经写了
java爬坑中
·
2023-09-12 10:44
java并发编程
java
开发语言
volatile必懂知识点
在Java
并发编程
中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字被用来
earl哦哦哦
·
2023-09-12 07:41
java
并发编程
(二) 线程的6种状态
一、线程的状态初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得
卡戎li
·
2023-09-12 07:00
并发编程
出问题的原因
一、计算机为提升性能做出的改变1.1CPU增加了缓存CPU对于数据的计算速度远远高于从内存中存取数据的速度,为了缓和CPU与内存之间的速度差异,计算机的制造商为CPU增加了缓存1.2操作系统增加了进程和线程为了缓和CPU和磁盘设备之间的速度差异,操作系统的制造商增加了进程和线程技术。1.3优化CPU指令执行顺序为了使CPU的缓存能够得到更加合理的利用,编译程序对CPU上指令的执行顺序进行了优化。二
weixin_50458070
·
2023-09-12 07:02
并发编程
java
java学习方向
:[tips]categories:[other]设计模式《大话设计模式》代码编写优化《重构改善既有代码的设计》《effectivejava》Java深入虚拟机《深入理解Java虚拟机》并发《Java
并发编程
实战
一路摇到顶
·
2023-09-12 00:55
Java笔记:Volatile
二、
并发编程
的3个基本概念(1)
zui初的梦想
·
2023-09-12 00:17
java
java
笔记
jvm
Golang相关电子书
Golang相关电子书,会不定期更新Go语言程序设计Go语言学习笔记.雨痕(详细书签)Go语言·云动力(云计算时代的新型编程语言)GoWeb编程Go
并发编程
实战(第2版)go语言标准库TheWaytoGo
萧潇公举
·
2023-09-12 00:16
Java JUC
并发编程
(笔记)
文章目录再谈多线程并发与并行顺序执行并发执行并行执行再谈锁机制重量级锁轻量级锁偏向锁锁消除和锁粗化JMM内存模型Java内存模型重排序volatile关键字happens-before原则多线程编程核心锁框架Lock和Condition接口可重入锁公平锁与非公平锁读写锁锁降级和锁升级队列同步器AQS底层实现公平锁一定公平吗?Condition实现原理自行实现锁类原子类原子类介绍ABA问题及解决方案
ps酷教程
·
2023-09-11 22:02
#
并发
java
juc
并发编程
的艺术(10):深入了解Java里的线程池
1线程池1.1.自定义线程池步骤1:自定义拒绝策略接口@FunctionalInterface//拒绝策略interfaceRejectPolicy{voidreject(BlockingQueuequeue,Ttask);}步骤2:自定义任务队列classBlockingQueue{//1.任务队列privateDequequeue=newArrayDequerejectPolicy,Ttask
非常之观常在险远
·
2023-09-11 22:56
并发编程
java
线程池
ThreadPool
并发
【漫画】JAVA
并发编程
如何解决原子性问题
在
并发编程
BUG源头文章中,我们初识了
并发编程
的三个bug源头:可见性、原子性、有序性。在如何解决可见性和原子性文章中我们大致了解了可见性和有序性的解决思路,今天轮到最后一个大bug,那就是原子性。
胖滚猪学编程
·
2023-09-11 21:22
Day37 尚硅谷JUC——乐观锁、悲观锁、读写锁、锁降级
我是大白(●—●),这是我开始学习记录大白Java软件攻城狮晋升之路的第三十七天,今天学习的是【尚硅谷】大厂必备技术之JUC
并发编程
文章目录一、概述1.悲观锁2.乐观锁3.表锁和行锁4.读锁和写锁二、案例实现三
夢想家吖
·
2023-09-11 20:47
JUC
java
数据库
jvm
java多线程(四)—— 乐观锁和悲观锁
我们在多线程的
并发编程
中会遇到对共享资源的操作,而多个线程并发的对共享资源操作会发生线程安全问题,也就是使得共享资源产生混乱,最终得到的结果值与预期值是不一致的,为了解决这种问题,就提供了两种思想来解决
小先生duang
·
2023-09-11 20:16
多线程
java
多线程
算法
java
并发编程
GO语言网络编程(
并发编程
)GMP原理与调度
GO语言网络编程(
并发编程
)GMP原理与调度1、GMP原理与调度1.1.1.一、Golang“调度器”的由来?
lucky九年
·
2023-09-11 20:44
GO
网络
golang
linux
多线程与高并发——
并发编程
(5)
文章目录五、线程池1什么是线程池2JDK自带的构建线程池的方式2.1FixedThreadPool2.2SingleThreadExecutor2.3CachedThreaPool2.4ScheduleThreadPool2.5WorkStealingPool3ThreadPoolExecutor应用&源码剖析3.1为什么要自定义线程池3.2ThreadPoolExecutor应用3.3Threa
斗志昂-杨
·
2023-09-11 17:25
Java多线程并发编程
并发编程
线程池
多线程与高并发——
并发编程
(7)
文章目录七、JUC并发工具1CountDownLatch应用&源码分析1.1CountDownLatch介绍1.2CountDownLatch应用1.3CountDownLatch源码分析1.3.1有参构造1.3.2await方法1.3.3countDown方法2CyclicBarrier应用&源码分析2.1CyclicBarrier介绍2.2CyclicBarrier应用2.3CyclicBar
斗志昂-杨
·
2023-09-11 17:25
Java多线程并发编程
JUC并发工具
CountDownLatch
CyclicBarrier
Semaphone
多线程与高并发——
并发编程
(6)
文章目录六、并发集合1ConcurrentHashMap1.1存储结构1.2存储操作1.2.1put方法1.2.2putVal方法-散列算法1.2.3putVal方法-添加数据到数组&初始化数组1.2.4putVal方法-添加数据到链表1.3扩容操作1.3.1treeifyBin方法触发扩容1.3.2tryPresize方法-针对putAll的初始化操作1.3.3tryPreSize方法-计算扩容
斗志昂-杨
·
2023-09-11 16:48
Java多线程并发编程
哈希算法
红黑树
写时复制
GO语言网络编程(
并发编程
)select
GO语言网络编程(
并发编程
)select1、select1.1.1select多路复用在某些场景下我们需要同时从多个通道接收数据。通道在接收数据时,如果没有数据可以接收将会发生阻塞。
lucky九年
·
2023-09-11 16:46
golang
网络
sql
GO语言网络编程(
并发编程
)并发安全和锁
GO语言网络编程(
并发编程
)并发安全和锁1.并发安全和锁有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。
lucky九年
·
2023-09-11 16:46
golang
开发语言
后端
GO语言网络编程(
并发编程
)原子操作(atomic包)
GO语言网络编程(
并发编程
)原子操作(atomic包)1、原子操作(atomic包)1.1.1.原子操作代码中的加锁操作因为涉及内核态的上下文切换会比较耗时、代价比较高。
lucky九年
·
2023-09-11 16:46
网络
golang
服务器
GO语言网络编程(
并发编程
)Sync
GO语言网络编程(
并发编程
)Sync1、Sync1.1.1.sync.WaitGroup在代码中生硬的使用time.Sleep肯定是不合适的,Go语言中可以使用sync.WaitGroup来实现并发任务的同步
lucky九年
·
2023-09-11 16:16
golang
开发语言
后端
【JUC】一、Java
并发编程
基础知识
JUC基础前置知识进程与线程进程程序由指令和数据组成,程序要执行就必须将指令加载到CPU,将数据加载至内存。同时在程序的运行过程中还需要用到磁盘、网络等设备,进程就是用来加载指令、管理内存、管理IO的。程序被执行时,程序会将代码加载至内存,这时就开启了一个进程进程可以视为是程序的一个实例。大部分程序可以同时运行多个实例(记事本、画图、浏览器等),但也有一部分程序只能运行一个实例(安全卫士、网易云音
清河__
·
2023-09-11 14:01
JUC
java
开发语言
探索 Java 线程的创建
前言在
并发编程
中我们为啥一般选用创建多个线程去处理任务而不是创建多个进程呢?这是因为线程之间切换的开销小,适用于一些要求同时进行并且又要共享某些变量的并发操作。
·
2023-09-11 11:16
java后端
go channel实践与源码探索(初始化、发送消息、接收消息、关闭)
文章目录概要一、
并发编程
1.1、Actor模型1.2、CSP模型二、GoChannel实践三、源码分析3.1、初始化3.2、发送消息3.3、接收消息3.4、关闭通道总结概要通道(Channel)是Go语言提供的协程之间通信与同步的方式
pigfu
·
2023-09-11 10:45
Go系列
golang
go
channel
go
channel源码分析
go
channel使用总结
面试(乐观锁和悲观锁)
一、锁乐观锁(OptimisticLocking)和悲观锁(PessimisticLocking)是在
并发编程
中常用的两种锁机制,用于解决多线程并发访问共享资源时的数据一致性问题。
方璧
·
2023-09-11 06:14
面试
java
职场和发展
上一页
44
45
46
47
48
49
50
51
下一页
按字母分类:
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
其他