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
并发编程原理分析
并发编程
专题——第二章(
并发编程
之Synchronized详解)
日常中我们都会用到Synchronized关键字,但是面试就喜欢问这些,你说不重要吧,面试就不问了,你说重要吧,工作中除了高并发之外,很少能在业务代码中使用到的。所以笔者顶着风险,写下此篇对Synchronized的深入剖析,看完你会有收获!1、抛砖引玉多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源
风清扬逍遥子
·
2024-02-01 05:53
并发编程专题
面试
java
synchronized
并发编程
核心——一基本概念
主要内容(镇楼!)1.常见高并发基础:synchronized、volatile、happens-before、CAS、ThreadPoolExecutor、Executor、ThreadLocal、Condition、Semaphore;2.经典并发工具:automic、ABA、ReentrantLock、ReadWriteLock、Adder、Accumulator、StampedLock、C
过期小朋友、
·
2024-02-01 05:53
高并发学习笔记
并发编程
(九)——集合相关面试问题
1、线程安全的集合(单列)怎么选择?List、Set集合,线程安全的有哪些?Vector,有,但是基本不考虑。(synchronized同步方法)Collections.synchronizedList,也可以拿到线程安全的集合(synchronized同步代码块)CopyOnWrite系列。(lock锁)如果数据体量贼大,不考虑读的问题,还需要保证线程安全?答:第一点,不能考虑CopyOnWri
小灰灰-58
·
2024-02-01 05:52
并发编程
java
并发编程
—如何解决可见性和有序性问题
在上一篇
并发编程
之BUG源头我们介绍了导致
并发编程
出现诡异问题的三大源头,即:缓存导致了可见性问题,线程切换带来了原子性问题,编译优带来了有序性问题,这三个Bug源头在所有的编程语言中都会遇到,那么今天就聊聊
瞎胡扯1
·
2024-02-01 05:48
[
并发编程
基础] Java线程的创建方式
文章目录线程的创建方式继承`Thread`实现`Runnable`接口实现`Callable`接口使用`Lambda`使用线程池线程创建相关的`jdk`源码`Thread`类`Runnable`函数接口`Callable`函数接口`executors`线程的创建方式继承Thread创建一个继承Thread类的子类。重写Thread类的run()方法。在run()方法中编写线程要执行的任务。创建Th
程序员三木
·
2024-02-01 03:48
Java探索者之路
java
开发语言
Java-
并发编程
-常见面试题-总结
JMM(Java内存模型)JMM(Java内存模型)相关的问题比较多,也比较重要,于是我单独抽了一篇文章来总结JMM相关的知识点和问题:JMM(Java内存模型)详解。#volatile关键字#如何保证变量的可见性?在Java中,volatile关键字可以保证变量的可见性,如果我们将变量声明为volatile,这就指示JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取。volatile
无心六神通
·
2024-02-01 02:13
java
开发语言
Java 并发系列十五 : 两阶段终止模式-如何优雅地终止线程?
前言感谢王宝令老师的
并发编程
课程今天咱们从技术的角度聊聊如何优雅的终止一个线程。
逗逼程序员
·
2024-02-01 00:39
Java
并发编程
之阻塞队列
1.什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞队列就是生产者用来
逍遥白亦
·
2024-01-31 22:24
并发编程
-11线程安全策略之线程封闭
原文链接:https://blog.csdn.net/yangshangwei/article/details/87886079脑图概述在上篇博文
并发编程
-10线程安全策略之不可变对象,我们通过介绍使用线程安全的不可变对象可以保证线程安全
java高并发
·
2024-01-31 22:38
面试官:给我讲讲线程池(上)
面试官:我看简历上写了精通
并发编程
,那么线程池在平时的工作中肯定需要用到吧,你一般是用在什么场景下呢?
码农小张
·
2024-01-31 21:22
Java 高
并发编程
——Reactor模式(多线程)
1多线程版本的Reactor模式演进Reactor和Handler挤在一个单线程中会造成非常严重的性能缺陷,可以使用多线程来对基础的Reactor模式进行改造。多线程Reactor的演进分为两个方面:1、升级Handler。既要使用多线程,又要尽可能高效率,则可以考虑使用线程池。2、升级Reactor。可以考虑引入多个Selector(选择器),提升选择大量通道的能力。总体来说,多线程版本的Rea
geminigoth
·
2024-01-31 18:01
java
java
开发语言
nio
Reactor
netty
Java 高
并发编程
——Reactor模式(多线程)备份
1多线程版本的Reactor模式演进Reactor和Handler挤在一个单线程中会造成非常严重的性能缺陷,可以使用多线程来对基础的Reactor模式进行改造。多线程Reactor的演进分为两个方面:1、升级Handler。既要使用多线程,又要尽可能高效率,则可以考虑使用线程池。2、升级Reactor。可以考虑引入多个Selector(选择器),提升选择大量通道的能力。总体来说,多线程版本的Rea
geminigoth
·
2024-01-31 18:01
java
java
开发语言
nio
Reactor
netty
java-JUC
并发编程
学习笔记03(尚硅谷)
线程间通信例子:对一个值+1-1交替完成,a的值就是1b的值就是0这个过程就是线程间通信Synchronized实现:虚假唤醒问题:我们再添加两个线程。我们发现我们的结果就不对了。我们只需要使用while即可。我们线程通信的最后一步就是防止虚假通信的出现。Lock实现:运行结果:这就是我们使用lock和synchronized两种方式进行线程的通信的基础学习。
抹茶味的西瓜汁
·
2024-01-31 18:20
多线程并发编程
学习
笔记
并发编程
之:Atomic
大家好,我是小黑,一个在互联网苟且偷生的农民工。在开始讲今天的内容之前,先问一个问题,使用int类型做加减操作是不是线程安全的呢?比如i++,++i,i=i+1这样的操作在并发情况下是否会有问题?我们通过运行代码来看一下。publicclassAtomicDemo{publicstaticvoidmain(String[]args)throwsInterruptedException{Datada
小黑说Java
·
2024-01-31 17:31
JUC
并发编程
(九)-- Fork/Join框架
JUC
并发编程
(九)--Fork/Join框架一、什么是Fork/Join1、概述2、特点二、代码实现一、什么是Fork/Join1、概述fork/join框架可以将一个大任务,拆分成一个个的小任务,然后分别计算
书生灬今天不吃饭
·
2024-01-31 17:47
多线程
java
java
多线程
并行计算
并发编程
forkjoin
JUC
并发编程
三(stream流式计算、ForkJoin、异步回调、JMM、Volatile、单例模式)
十三、Stream流式计算(必修掌握)什么是Stream流式计算?大数据:存储+计算存储:集合、MySQL本质就是存储东西的;计算:都应该交给流来操作!常用方法:可以看出参数类型是我们刚刚学过的断点型函数式接口,只有参数返回值类型为boolean等等,大多数的都是函数式接口,所以一定要先学会函数式接口再来学stream流解析:u就是个形式参数,是从stream里面得出的泛型推荐使用stream流,
无极的移动代码
·
2024-01-31 17:46
Java基础学习
java
java-ee
spring
maven
tomcat
JUC
并发编程
(8)--- ForkJoin与Stream并行流
ForkJoin讲解ForkJoin是在JDK1.7出来的,在大数据环境下,并行执行任务,提高效率。原理:用的是分支合并的思想,将大任务拆成多个小任务并行,然后再合并成原来任务ForkJoin的特点:工作窃取假设有线程A和线程B同时执行队列中的任务,线程B先执行完,然后线程B不能闲着,就会窃取线程A对应队列后面没有执行完的来执行,这样就提高效率。就是自己执行完,帮别人执行。我们来举个求和案例,在I
小样x
·
2024-01-31 17:16
JUC并发编程
java
多线程
JUC
并发编程
-单例模式、深入理解CAS、原子引用
18.玩转单例模式饿汉式、DCL懒汉式单例模式,单线程模式下是安全的的,但是多线程模式下,不安全1)饿汉式/***饿汉式单例*/publicclassHungry{/***可能会浪费空间*/privatebyte[]data1=newbyte[1024*1024];privatebyte[]data2=newbyte[1024*1024];privatebyte[]data3=newbyte[10
666-LBJ-666
·
2024-01-31 17:44
JUC并发编程
单例模式
JUC
java并发编程
JUC
并发编程
-异步回调、JMM、volatile
15.异步回调Future设计的初衷:对将来的某个事件结果进行建模!其实就是前端-->发送ajax异步请求给后端但是我们平时都使用CompletableFuture1)异步调用:CompletableFuture没有返回值的异步回调publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{//发起
666-LBJ-666
·
2024-01-31 17:14
JUC并发编程
JUC
多线程
并发编程
JuC
并发编程
-ForkJoin与异步回调
1、ForkJoin特点:工作窃取里边维护的是双端队列packagecom.zkw.JUC
并发编程
.forkjoin;importjava.util.concurrent.RecursiveTask;publicclassForkJoinDemonextendsRecursiveTask
小白程序猿一枚
·
2024-01-31 17:43
java
JUC
并发编程
-四大函数式接口、Stream 流式计算、ForkJoin并行执行任务
12.四大函数式接口新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算函数式接口:只有一个方法的接口,可以有一些默认的方法如:Runnable接口函数1)Function函数型接口publicclassFunctionDemo{publicstaticvoidmain(String[]args){Functionfunction=(str)->{returnstr;};
666-LBJ-666
·
2024-01-31 17:12
JUC并发编程
多线程
并发编程
JUC
jenkins任意文件读取漏洞复现与分析 -CVE-2018-1999002
-CVE-2018-19990020x00漏洞影响版本Jenkinsweeklyuptoandincluding2.132JenkinsLTSuptoandincluding2.121.10x01漏洞
原理分析
在没有登陆
weixin_33894640
·
2024-01-31 17:34
运维
Vue(十九):ElementUI 扩展实现树形结构表格组件的勾父选子、半勾选、过滤出半勾选节点功能
效果
原理分析
从后端获取数据后,判断当前节点是否勾选,从而判断是否勾选子节点勾选当前节点时,子节点均勾选全勾选与半勾选与不勾选的样式处理全勾选和全取消勾选的逻辑筛选出半勾选的节点定义变量import{computed
Prosper Lee
·
2024-01-31 16:01
Vue
vue.js
elementui
前端
javascript
Java基础-多线程(3)
所以
并发编程
的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36.线程和进程的区别?简而言之,进程是程序运行和资源分配的基本
C乖
·
2024-01-31 16:51
SpringBoot基础
SpringBoot基础快速开发SpringBoot概述SpringBoot快速入门快速构建springboot项目(推荐)基于maven搭建SpringBoot工程SpringBoot起步依赖
原理分析
帝乙岩
·
2024-01-31 14:47
java后端
spring
boot
java
mybatis
ThreadLocal、ITL、TTL原理详解及实践
1.ThreadLocal介绍 1.1基本使用 1.2
原理分析
1.3软引用2.InheritableThreadLocal介绍 2.1基本使用 2.2
原理分析
2.3ITL问题3.TransmittableThreadLocal
Raral
·
2024-01-31 13:38
Vue中keep-alive缓存的详解(深度理解)
文章目录一、Keep-alive是什么二、使用场景三、
原理分析
四、思考题:缓存后如何获取数据beforeRouteEnteractived参考文献一、Keep-alive是什么keep-alive是vue
章IT
·
2024-01-31 12:31
vue.js
缓存
前端
javascript
前端框架
小程序
微信小程序
MySQL之系列
04MySQL索引
原理分析
-1。05mysql的锁分析。MySQL你到底都加了什么锁?。MySQLbinlog的3种格式对比(statement,row,mixed)。MyS
一户董
·
2024-01-31 11:44
mysql
mysql
数据库
Python
并发编程
的概念和重要性
并发编程
是一种编程方式,它允许在单台处理器上同时处理多个任务或操作。这些任务可以在单个处理器上通过时间分片技术实现,也可以在多核或多处理器系统上真正地并行执行。
轻编程
·
2024-01-31 10:05
python
java
数据库
开发语言
Reactor简述
1、概念Reactor是一个计算机编程模式,它在
并发编程
和网络编程中用于处理大量并发输入事件。
xixingzhe2
·
2024-01-31 10:42
架构设计
java
网络
数据库
java
漫画图解 Go
并发编程
之:Channel
当谈到并发时,许多编程语言都采用共享内存/状态模型。然而,Go通过实现CommunicatingSequentialProcesses(CSP)而与众不同。在CSP中,程序由不共享状态的并行处理器组成;相反,他们使用Channel来沟通和同步他们的行动。因此,对于有兴趣采用Go的开发人员来说,理解Channel的工作原理变得至关重要。在本文中,我将使用地鼠经营他们想象中的咖啡馆的令人愉快的类比来说
夜莺云原生监控
·
2024-01-31 10:41
SRETalk
golang
Go
并发编程
并发编程
的12条规范
1.获取单例对象需要保证线程安全我们在获取单例对象的时候,要确保线性安全哈。比如双重检查锁定(Double-CheckedLocking)的单例模式,就是一个经典案例,你在获取单实例对象的时候,就需要保证线性安全,比如加synchronized确保现象安全,代码如下:public class Singleton { private volatile static Singleton inst
BUG指挥官
·
2024-01-31 06:54
单例模式
java
并发编程
的两个案例
并发编程
一直是开发过程中非常有挑战力的部分,不仅需要保证数据的正确性,也要考虑这个性能是可以接受的,既然已经考虑并发这个事情,说明它的瞬间流量已经不低了。
coder_sheep
·
2024-01-31 04:15
spring实战
spring
源码
并发
事务
锁
Java 异常处理中篇:finally 中的陷阱(finally 中 return 会发生什么)
异常丢失finally底层
原理分析
总结个人简介前言在上一篇文章中,我们介绍了Java异常的基本概念,Throwable、异常处理关键字:try-catch-finally、throw、throws;本
Lorin 洛林
·
2024-01-30 23:22
Java
后端经典面试题
Java
java
开发语言
学习笔记:Java
并发编程
(补)CompletableFuture
学习视频:https://www.bilibili.com/video/BV1ar4y1x727参考书籍:《实战JAVA高并发程序设计》葛一鸣著系列目录学习笔记:Java
并发编程
①_基础知识入门学习笔记
YanZhaoHanWei_555
·
2024-01-30 22:32
#
JUC
Java
基础学习
java
学习
c++
并发编程
实战笔记
std::thread::hardware_concurrency();可以用来获得当前CPU最多一次性可以并发多少个线程,但是结果仅供参考可以用get_id()函数来获得线程id可以使用std::once_flag+std::call_once来保护只需要同步一次的代码参考:3.3.1可以通过std::shared_mutex来实现c++版本的读写锁,需要c++14的支持。例:#include/
onedayday-tao
·
2024-01-30 19:44
c++
笔记
开发语言
并发编程
之常用锁与AQS
目录一、常用锁(除Synchronized)LongAddrReentrantLockCountDownLatchCyclicBarrierPhaserReadWriteLockSemaphoreExchangerLockSupport二、AQS三、ThreadLocal一、常用锁(除Synchronized)LongAddr首先声明LongAddr不为锁,他是一个原子操作类,类似于AtomicL
、风筝
·
2024-01-30 19:39
多线程
java
并发编程
之AQS初探
Java
并发编程
核心在于java.concurrent.util包,而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer
lianzhongzhang
·
2024-01-30 19:38
并发编程
并发编程
java
并发编程
之 AQS & ReentrantLock
1、AQSAQS:AbstractQueuedSynchronizer,抽象队列同步器。在Java并发包中提供的锁(java.util.concurrent.locks),都是利用AQS来实现的。AQS底层其实也是利用CAS来共同实现锁的机制。AQS内部核心的参数:state:用于记录锁的同步状态,AQS底层的核心字段。但是,在ReentrantLock、ReentrantReadWriteRea
Howinfun
·
2024-01-30 19:08
Java并发编程
并发编程
AQS
JAVA
并发编程
之AQS锁
一、多线程问题产生多线程问题主要有以下几点:1.多线程环境2.有临界资源3.有多个线程在同一时刻操作临界资源具体产生的问题:1.可见性问题(volatile:被volatile修饰的共享数据会导致变量副本每次访问时强制清空!从而保证每次访问的都是主内存中的最新值!)2.原子性问题(CAS、加锁)3.指令重排二、ReentrantLock1.简介ReentrantLock是一种基于AQS框架的应用实
学习中的程序媛~
·
2024-01-30 19:37
java
开发语言
并发
并发编程
【2】
01.什么是僵尸进程,孤儿进程僵尸进程是指在进程已经终止但是其父进程尚未终止信息(退出状态码)的情况下。保留在进程表中的进程。僵尸进程不占用实际的系统资源,但会占用一个进程ID,并且会在系统中产生垃圾。孤儿是指在网络中失去父进程(创建它的进程)却继续运行的子进程。通常是由于父进程异常退出或未正确管理子进程而导致。它就会并由init进程来处理孤儿进程的退出状态。在从进程表中删除孤儿进程的记录。02.
m0_58310590
·
2024-01-30 17:12
服务器
linux
网络
【Java和Python对比超详细介绍】
Java和Python对比超详细介绍1.介绍2.语言的设计哲学和语法2.1Java2.2Python3.性能4.类型系统5.
并发编程
6.用途7.生态系统和社区支持8.开发工具和环境9.学习曲线10.跨平台能力
程序员不想敲代码啊
·
2024-01-30 15:53
python
java
开发语言
JUC
并发编程
详解
1、什么是JUC?java.util.concurrnetjava.util.concurrent.atomicjava.util.concurrent.locks2、进程和线程进程:一个程序的实例线程:是一个进程的实体,CPU调度和分配的基本单位java默认有两个线程,main方法和GC开启线程的方式:Thread、Runnable、CallableJava本质是无法开启线程的,是调用本地方法(
编程码农张
·
2024-01-30 13:24
Java中的四种线程池详解及使用场景
前言在Java
并发编程
中,JDK提供了一套强大的线程池工具类java.util.concurrent.ThreadPoolExecutor以及它的四个便捷工厂方法,这四种线程池分别对应不同的使用场景和特性
李少兄
·
2024-01-30 13:10
Java
java
开发语言
基于Lucene查询
原理分析
Elasticsearch的性能
前言Elasticsearch是一个很火的分布式搜索系统,提供了非常强大而且易用的查询和分析能力,包括全文索引、模糊查询、多条件组合查询、地理位置查询等等,而且具有一定的分析聚合能力。因为其查询场景非常丰富,所以如果泛泛的分析其查询性能是一个非常复杂的事情,而且除了场景之外,还有很多影响因素,包括机型、参数配置、集群规模等等。本文主要是针对几种主要的查询场景,从查询原理的角度分析这个场景下的查询开
云栖社区v
·
2024-01-30 11:45
小迪安全24WEB 攻防-通用漏洞&SQL 注入&MYSQL 跨库&ACCESS 偏移
#知识点:1、脚本代码与数据库前置知识2、Access数据库注入-简易&偏移3、MYSQL数据库注入-简易&权限跨库#前置知识:-SQL注入漏洞产生
原理分析
-SQL注入漏洞危害利用分析-脚本代码与数据库操作流程
yiqiqukanhaiba
·
2024-01-30 10:52
安全
sql
mysql
STM32学习笔记一——初识STM32
目录一、什么是ARM二.Cortex内核三.什么是STM32四.STM32核心板原理图:五.STM32的内部结构:六.stm32系统结构简化图STM32基本
原理分析
:七.典型型号——STM32F103ZET6stm32
庆庆知识库
·
2024-01-30 10:57
STM32学习笔记
单片机
stm32
并发无锁的艺术
前言在
并发编程
中,多线程的共享资源的修改往往会造成严重的线程安全问题,解决这种问题简单暴力的方式就是加锁,加锁的方式使用简单易理解,但常常会因为阻塞导致性能问题有没有可能做到无锁还保证线程安全呐?
pq217
·
2024-01-30 10:24
java
并发编程
(十一)LockSupport之park/unpark
一、简介1.1主要方法Park/UnPark方法是LockSupport当中的方法。其常用方法有如下:park():暂停当前线程。park(Objectblocker):暂停当前线程,并指定负责此线程停放的同步对像。parkNanos(longnanos):暂停当前线程,指定等待的最大纳秒数。parkNanos(Objectblocker,longnanos):暂停当前线程,指定等待的最大纳秒数和
我犟不过你
·
2024-01-30 10:33
朴素贝叶斯
原理分析
及文本分类实战
朴素贝叶斯
原理分析
及文本分类实战1.什么是贝叶斯2.什么是朴素贝叶斯3.如何用朴素贝叶斯来进行文本分类问题1数据精度问题问题2log(0)得到负无穷问题4.程序设计1以单词为单位进行计数2以文本为单位进行计数
沪上小乔
·
2024-01-30 08:49
NLP文本处理
自然语言处理
python
概率论
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他