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
并发编程
之美》这本书8、9、11章关于线程池的部分,有很多新的收获,在此想结合项目经历,总结分析一下实践中对于线程池的应用场景
无一郎的技术圈
·
2024-01-17 02:36
java
后端
《java
并发编程
之美》学习笔记-知识盲点记录
文章目录@[TOC](文章目录)前言一、InheritableThreadLocal类(第一章1.11节)二、原子操作Adder与Accumulator(第四章)1.LongAdder2.LongAccumulator三、StampedLock锁(第六章)四、守护线程、伪共享、虚假唤醒(第一、二章)1.守护线程2.伪共享3.虚假唤醒4.Unsafe类与LockSupport五、Concurrent
无一郎的技术圈
·
2024-01-17 02:06
java
后端
【算法Hot100系列】全排列
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-17 01:21
s6
算法与数据结构
算法
并发编程
之三——JUC工具类
1.Fork-Join1.1分而治之分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同(子问题相互之间有联系就会变为动态规范算法),递归地解这些子问题,然后将各子问题的解合并得到原问题的
夕v雨
·
2024-01-17 00:00
java
java
多线程
并发编程
(五)——线程池
一、什么是线程池为什么要使用线程池在开发中,为了提升效率的操作,我们需要将一些业务采用多线程的方式去执行。比如有一个比较大的任务,可以将任务分成几块,分别交给几个线程去执行,最终做一个汇总就可以了。比如做业务操作时,需要发送短信或者是发送邮件,这种操作也可以基于异步的方式完成,这种异步的方式,其实就是再构建一个线程去执行。但是,如果每次异步操作或者多线程操作都需要新创建一个线程,使用完毕后,线程再
小灰灰-58
·
2024-01-17 00:58
并发编程
java
jvm
并发编程
(一)——线程的基础概念
一、基础概念1.1进程与线程A什么是进程?进程是指运行中的程序。比如我们使用钉钉,浏览器,需要启动这个程序,操作系统会给这个程序分配一定的资源(占用内存资源)。什么线程?线程是CPU调度的基本单位,每个线程执行的都是某一个进程的代码的某个片段。举个栗子:房子与人比如现在有一个100平的房子,这个方式可以看做是一个进程房子里有人,人就可以看做成一个线程。人在房子中做一个事情,比如吃饭,学习,睡觉。这
小灰灰-58
·
2024-01-17 00:28
并发编程
java
并发编程
(二)——
并发编程
的三大特性
一、原子性1.1什么是
并发编程
的原子性JMM(JavaMemoryModel)。不同的硬件和不同的操作系统在内存上的操作有一定差异的。
小灰灰-58
·
2024-01-17 00:28
并发编程
java
并发编程
(三)——锁
一、锁的分类1.1可重入锁、不可重入锁Java中提供的synchronized,ReentrantLock,ReentrantReadWriteLock都是可重入锁。重入:当前线程获取到A锁,在获取之后尝试再次获取A锁是可以直接拿到的。不可重入:当前线程获取到A锁,在获取之后尝试再次获取A锁,无法获取到的,因为A锁被当前线程占用着,需要等待自己释放锁再获取锁。1.2乐观锁、悲观锁Java中提供的s
小灰灰-58
·
2024-01-17 00:28
并发编程
java
Juc
并发编程
14——线程计数器CountdownLatch源码剖析
前言作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端专栏简介:juc
并发编程
,讲解锁原理、锁机制、线程池、AQS、并发容器、并发工具等,深入源码,持续更新。
半旧518
·
2024-01-17 00:58
juc
java
juc
并发
多线程
原力计划
Java
并发编程
核心包——JUC
JUC初步作者:李晶晶;日期:2021年4月20日;学习视频:2020权威_juc与jvm
并发编程
Java必学_阳哥-尚硅谷文章目录JUC初步初识Lock抢票案例生产者消费者问题使用Lock解决生产者消费者问题
木子六日
·
2024-01-17 00:57
java
juc
可重入锁
lock
线程池
ThreadPool
并发编程
(七)——JUC并发工具
一、CountDownLatch应用&源码分析1.1CountDownLatch介绍CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器。如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。需要一个并发安全的计数器来操作。CountDownLatch就可以实现。给CountDownLatch设置一个数值。可以设置3。每个业务处理完毕之后,执行一次cou
小灰灰-58
·
2024-01-17 00:26
并发编程
java
开发语言
这可能是最全面的Java
并发编程
八股文了
内容摘自我的学习网站:topjavaer.cn分享50道Java并发高频面试题。线程池线程池:一个管理线程的池子。为什么平时都是使用线程池创建线程,直接new一个线程不好吗?嗯,手动创建线程有两个缺点不受控风险频繁创建开销大为什么不受控?系统资源有限,每个人针对不同业务都可以手动创建线程,并且创建线程没有统一标准,比如创建的线程有没有名字等。当系统运行起来,所有线程都在抢占资源,毫无规则,混乱场面
大彬聊编程
·
2024-01-16 23:14
分享
java
开发语言
面试
Java
并发编程
的艺术-Java内存模型
基础共享变量(堆空间中所有的实例域,静态域,数组元素)的访问需要同步,而局部变量不会在线程间共享,所以不存在可见性问题。每一个线程都有一个私有的本地内存(抽象概念)源代码到最终的指令序列执行需经过编译器重排序和处理器重排序JMM要求java编译器在生成指令序列时,插入特定的内存屏障以禁止特定类型的处理器重排序。重排序重排序时遵守数据依赖性(写后读,读后写,写后写)as-if-serial语义:不管
油多坏不了菜
·
2024-01-16 21:56
深度解析Java 同步框架(java.util.concurrent包下的同步类)
简介从JDK1.5开始,Java提供了程序级
同步锁
(java.uitil.concurrent包下提供了不同功能的
同步锁
类),特别感谢DougLea大师,不仅提供了理论支持,同时提供了代码实现,本文对>
时间海绵
·
2024-01-16 19:22
多线程
java
Java内置锁:深度解析lock和trylock
定义在Java11中,Lock接口是Java
并发编程
中一个重要的接口,它提供了更灵活的线程同步机制,相比于内置的synchronized关键
程序员古德
·
2024-01-16 19:50
java
python
开发语言
原子操作:
并发编程
的守护者
文章目录前言一、原子操作的定义与重要性二、Java中的原子操作类三、CAS指令与原子操作原理四、CAS操作的三个运算符五、CAS操作的循环重试机制六、原子操作在
并发编程
中的应用七、总结前言
并发编程
的守护者在多线程或者
并发编程
中
小阳小朋友
·
2024-01-16 19:47
并发
开发语言
java
【Mybatis系列】Mybatis空值关联
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-16 16:26
s5
数据库
mybatis
Rust 语言从入门到实战 唐刚 学习笔记16
今天我们来了解
并发编程
的另一种范式——使用channel在不同的任务间进行通信。channel翻译成中文就是通道或管道,用来在task之间传递消息。这个概念本身并不难。
zhanglz888
·
2024-01-16 14:20
Rust
语言从入门到实战
唐刚
学习笔记
rust
学习
笔记
JavaEE进阶知识学习----多线程JUC高级知识-2-内存可见性-CAS算法
1.JavaJUC简介在java5.0之后提供了一个java.util.concurrent包(简称JUC),此包中增加了很多在
并发编程
中常用的工具类,用于定义类似于线程的自定义系统,包括线程池,异步IO
Waldeinsamkeit4
·
2024-01-16 13:14
【脑筋急转弯系列】乒乓球称重问题
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-16 10:42
s6
算法与数据结构
脑筋急转弯
多线程简要理解
多线程是一种
并发编程
技术,允许在同一个进程内同时执行多个线程。每个线程都可以独立地执行特定的任务,从而提高程序的性能和响应能力。并发执行:多线程允许在同一个进程内同时执行多个任务。
ISDF-工软未来
·
2024-01-16 05:04
python
Golang
并发编程
详解
Golang
并发编程
详解介绍并发是现代软件开发中的一个重要概念,它允许程序同时执行多个任务,提高系统的性能和响应能力。
Bony-
·
2024-01-16 04:32
golang
爬虫
开发语言
Java进阶 —— 多线程并发
前言在系统学完Java的面向对象编程之后,我们需要认真地来学习Java
并发编程
,我们在学习计算机操作系统的时候也都了解过进程、线程和协程的概念。
荔枝当大佬
·
2024-01-16 03:30
Java开发
java
多线程
并发
线程池
java
并发编程
——多线程
本章主要介绍java中多线程
并发编程
基础知识,包括的内容有:进程,线程,协程的区别多线程的实现方式线程中断和优先级线程状态的切换一、进程、线程和协程1.1进程、线程和协程进程是资源分配的最小单位,操作系统会以进程为单位
西木风落
·
2024-01-16 03:57
Java基础知识巩固
java
多线程
高并发
JAVA
并发编程
——多线程
目录线程的特点轻型实体独立调度和分配的基本单位可并发执行共享进程资源线程的实现使用内核线程实现使用用户线程实现使用用户线程加轻量级线程混合实现Java线程实现每日寄语线程的特点在多线程操作系统中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性。轻型实体线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。线程的实
别活在过去i
·
2024-01-16 03:27
JAVA并发编程的艺术
java
jvm
开发语言
并发编程
(三)
1、线程之间如何通信,进程之间如何通信进程是程序在计算机上的一次执行过程,它包含了程序的代码、数据和系统资源。每个进程都有独立的内存空间和系统资源,相互之间互不干扰。进程是程序执行的基本单位,也是操作系统进行资源分配和调度的基本单位。线程是进程中的一个执行单元,一个进程中可以包含多个线程,这些线程共享同一个进程的内存空间和系统资源。线程之间通信更方便,同时创建和切换线程的开销也比进程小。线程是处理
沐暖沐
·
2024-01-15 22:35
java
开发语言
Java基础-
并发编程
-StampedLock类使用与原理分析
Java工程师知识树/Java基础StampedLock简介StampedLock实现了不仅多个读不互相阻塞,同时在读操作时不会阻塞写操作。StampedLock核心思想在于,在读的时候如果发生了写,应该通过重试的方式来获取新的值,而不应该阻塞写操作。这种模式也就是典型的无锁编程思想,和CAS自旋的思想一样。这种操作方式决定了StampedLock在读线程非常多而写线程非常少的场景下非常适用,同时
HughJin
·
2024-01-15 19:59
深入理解 go 原子操作
原子操作在
并发编程
中是一种非常重要的操作,它可以保证并发安全,而且效率也很高。本文将会深入探讨一下go中原子操作的原理、使用场景、用法等内容。什么是原子操作?原子操作是变量级别的互斥锁。如果让我用
rubys007
·
2024-01-15 19:09
go
golang
java
javascript
Java项目架构技术-高并发,微服务,分布式,需求分析
Java项目架构技术-高并发,微服务,分布式,需求分析,业务选型,项目部署,架构设计,架构师,源码分析,设计模式,数据结构,数据库,业务选型,中间件,
并发编程
,需求分析,需求设计,项目部署,云原生,企业架构
滴石编程
·
2024-01-15 18:36
java
系统架构
并发编程
(一)线程基础知识与线程控制
进程与线程进程:如任务管理器中各种程序叫做正在运行的进程。对于操作系统来说,仅仅是一个数据结构,并不真实的执行代码线程:真实执行代码的每个进程启动的是时候会同步启动一个主线程即main函数,当main函数结束时,该线程结束并销毁,同时其他线程随之销毁线程都有一个需要执行的代码块称为线程回调函数真并发与伪并发真并发当cpu是双核或者多核时,并不会一核心一任务,而是由单核心切换转为多核心切换,此时也称
ぃ扶摇ぅ
·
2024-01-15 18:17
c++
开发语言
【时光记:2023的心灵旅程】
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-15 18:16
s99
其他
年度总结
并发编程
(二)互斥体解决线程同步问题
如下一个线程同步程序:#include#includeintg_Value=0;一个全局变量voidadd(){for(size_ti=0;i库std::mutex互斥体类型std::mutexsome_mutex;声明一个互斥体此后原程序在哪会出错,就在哪加一个锁,如上述程序voidadd(){for(size_ti=0;iguard(some_mutex);类模板g_Value++;}}
ぃ扶摇ぅ
·
2024-01-15 18:44
c++
算法
开发语言
JAVA
并发编程
-从ReentrantLock看AQS实现源码解读
ReentrantLock的构造方法//默认非公平锁publicReentrantLock(){sync=newNonfairSync();}//指定publicReentrantLock(booleanfair){sync=fair?newFairSync():newNonfairSync();}ReentrantLock的加锁流程执行ReentrantLock的lock方法publicvoid
coder_sheep
·
2024-01-15 17:13
并发编程
java
数据结构
链表
jvm
JAVA
并发编程
-AQS底层实现原理及应用(二)
JAVA
并发编程
-AQS底层实现原理及应用(一)CANCELLED状态节点生成acquireQueued方法中的Finally代码:finalbooleanacquireQueued(finalNodenode
coder_sheep
·
2024-01-15 17:13
并发编程
java
算法
开发语言
数据结构
JAVA
并发编程
-AQS底层实现原理及应用(一)
前言Java中的大部分同步类(CountDownLatch,Semaphore,CyclicBarrier、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本篇不讲述包含共享锁和ConditionQueue的部分。一、开发一个自定义Lock锁public
coder_sheep
·
2024-01-15 16:43
并发编程
java
开发语言
spring
boot
后端
ide
【面试突击】
并发编程
、线程池面试实战
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到AI前沿项目工具及新技术的推送发送资料可领取深入理解Redis系列文章结合电商场景讲解Redis使用场景、中间件系列笔记和编程高频电子书!文章导读地址:点击查看文章导读!感谢你的关注!前言最近在更新面试突击专栏,我把每一篇将字数都尽量控制在2000字以内,可能在文章里边写的没有那么细致,主要是提供一些问题以及回答的思路,以及面试中可能忽略的
11来了
·
2024-01-15 15:26
面试突击
面试
职场和发展
java
并发编程
线程池
原型设计工具Axure RP结合内网穿透实现本地web页面公网访问协同办公
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-15 15:48
s20
cpolar
axure
前端
并发编程
(高并发、多线程) 第二章
并发编程
1.Lock1.1Lock接口相比于同步方法、同步块的优势?
sp_wxf
·
2024-01-15 14:07
java
并发编程
(高并发、多线程) 第三章
并发容器1.ThreadLocal1.1ThreadLocal是什么?(难度:★★频率:★★★)1.2为什么要使用ThreadLocal(难度:★★频率:★★★)1.3ThreadLocal内部结构和原理(难度:★★频率:★★★)1.4ThreadLocal导致内存泄漏(难度:★★频率:★★★)1.4.1内存泄漏和内存溢出的区别1.4.2强引用和弱引用的区别1.4.3ThreadLocal造成内存
sp_wxf
·
2024-01-15 14:07
java
jvm
性能优化
Python基础
基础知识的学习计划按照如下目录格式编写记录第一部分:python基本语法1.1环境搭建1.2基本数据类型1.3基本语法1.4内置方法1.5面向对象1.6常用库第二部分:python常用场景2.1文本处理2.2mysql2.3
并发编程
nervermore990
·
2024-01-15 14:00
Python
python
并发编程
—— 源码分析公平锁和非公平锁
前言ReentrantLock提供了公平锁和非公平锁,只需要在构造方法中使用一个boolean参数即可。默认非公平锁。今天从源码层面看看区别和具体实现。1.类UML图image.pngReentrantLock内部有一个抽象类Sync,继承了AQS。而公平锁的实现就是FairSync,非公平锁的实现就是NodFairSync。两把锁的区别在于lock方法的实现。2.公平锁lock方法实现final
莫那一鲁道
·
2024-01-15 13:29
iOS如何实现一个线程安全的 NSMutableArray?
是线程不安全的,当有多个线程同时对数组进行操作的时候可能导致崩溃或数据错误线程锁:使用线程锁对数组读写时进行加锁派发队列:在《EffectiveObjective-C2.0..》书中第41条:多用派发队列,少用
同步锁
中指出
赵哥窟
·
2024-01-15 12:24
Android性能优化典范之多线程篇
但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程
并发编程
的基础技能。
shangguansb
·
2024-01-15 11:44
android
优化
3、
并发编程
-Java线程
并发编程
Java线程创建和运行线程查看线程线程API线程状态创建和运行线程方法一,直接使用newThread//创建线程对象Threadt=newThread(){publicvoidrun(){//要执行的任务
站得高看得远
·
2024-01-15 07:16
Go
并发编程
实践
Go语言最大的特点就是
并发编程
,它实现了一种基于协程的并发模型。轻量级的协程模型减少了线程模型的切换消耗,大大增加了并发性能。本书这时对Go语言并发进行深入讲解的不可多得的好书。
SunnyZhang的IT世界
·
2024-01-15 06:59
C++学习笔记——C++ 新标准(C++11、C++14、C++17)引入的重要特性
目录1、简介2.自动类型推导和初始化示例代码3.智能指针示例代码4.Lambda表达式示例代码5.右值引用和移动语义示例代码6.
并发编程
支持示例代码7.其他特性八、案例:实现一个简单的并发下载器上一篇文章
Tech行者
·
2024-01-15 06:59
C++的学习笔记
c++
学习
笔记
并发编程
读书笔记-第七章20190429
1.Atomic包一共提供了13个类,分别属于原子更新基本类型,原子更新数组,原子更新引用,原子更新属性。基本是通过unsafe类封装实现
dahai2019
·
2024-01-15 04:44
阿里P8纯手码Java
并发编程
核心原理笔记
并发编程
并发编程
这四个字想必大家最近都在网上看到过有很多的帖子在讨论。我们都知道
并发编程
可选择的方式有多进程、多线程和多协程。在Java中,并发就是多线程模式。
架构师谢俞
·
2024-01-15 00:41
6.3 多线程的安全与应用
6.3多线程的安全与应用1.多线程概念1.进程2.线程2.创建多线程1.继承Thread类创建线程2.实现Runnable接口创建线程3.Callable接口创建线程3.线程同步1.
同步锁
synchronized2
与海boy
·
2024-01-14 23:16
Java工程师2022版
java
分布式引擎Elasticsearch本地部署并结合内网穿透远程访问
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-14 22:37
s20
cpolar
分布式
elasticsearch
大数据
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他