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
并发编程系列
:ThreadPoolExecutor 的那些事儿
线程池基础知识ThreadPoolExecutor:一个线程池Executors:线程池工厂,通过该类可以取得一个拥有特定功能的线程池ThreadPoolExecutor类实现了Executor接口,因此通过这个接口,任何的Runnable对象都可以被ThreadPoolExecutor线程池调度。常见的线程池类型publicstaticExecutorServicenewFixedThreadP
君若雅
·
2019-09-06 00:00
并发
java
Java进阶之
并发编程系列
1并发编程基础1.1详解Thread与Runnable(1)概念(2)学习链接在我的另一篇博客:Java基础之详解Thread与Runnable(3)总结1.2深入理解并发编程基础(1)概念(2)学习链接在我的另一篇博客:Java进阶之深入理解并发编程基础(3)总结2深入理解synchronized2.1深入理解synchronized在我的另一篇博客:Java进阶之深入理解synchronize
陈李冠
·
2019-08-25 12:39
Java进阶
并发编程系列
一:多线程基础
1.什么是线程?什么是进程?线程和进程的关系。2.线程创建与运行。创建一个线程有那几种方式?有何区别?3.线程通知与等待,多线程同步的基础设施,等待通知模型。4.线程的虚假唤醒是什么?如何避免?5.Object中finalize()是什么?该如何使用?6.让线程睡眠的sleep()、yield()和join(),sleep的线程会释放持有的锁?7.线程中断。什么是协作式中断?什么是抢占式中断?8.
Taylar_where
·
2019-08-17 20:03
java并发编程
高
并发编程系列
:4种常用Java线程锁的特点,性能比较、使用场景
多线程的缘由在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更”节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种”昂贵”的多任务工作方式。而在进程中的同
程序员plus
·
2019-07-29 16:45
Java
语言
程序员
编程语言
高并发
Java线程锁
Java编程
高
并发编程系列
:CountDownLatch、Semaphore等4大并发工具类详解
通常我们所说的并发包也就是java.util.concurrent,Java并发编程集中在这个并发包种,主要包含:Java并发工具类和并发容器等。今天主要介绍concurrent包的内容以及4大并发工具类。并发工具包1.并发工具类提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作。
程序员plus
·
2019-07-29 15:33
Java
编程语言
学习
基础知识
程序员
Java并发编程:Synchronized及其实现原理
Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java并发编程:线程间的协作
未来无所不能
·
2019-07-22 14:22
Java
高并发编程的成神之路--1.创建线程的七种方式及线程的生命周期及Thread类中run方法底层实现原理及callable接口实现线程返回值及spring实现多线程
这个高
并发编程系列
是对之前的一些重点说明和补充。该系列不适合零基础浏览!
键盘源
·
2019-07-09 11:17
高并发编程
java
并发编程系列
---(二)java 内存模型解析(JMM)
文章目录java内存模型概述工作内存数据和主内存数据硬件内存架构与Java内存模型Java线程与硬件处理器JMM(java内存模型)存在的必要性Java内存模型三大特性原子性可见性有序性JMM提供的解决方案举例说明:方法一:使用volatile关键字方法二:synchronized方法三:Locks另一个实例java内存模型本篇文章主要参考来自:理解Java内存区域与Java内存模型JavaMem
Charles Ren
·
2019-06-06 04:33
java并发编程
Java
并发编程系列
之CyclicBarrier详解
简介jdk原文Asynchronizationaidthatallowsasetofthreadstoallwaitforeachothertoreachacommonbarrierpoint.CyclicBarriersareusefulinprogramsinvolvingafixedsizedpartyofthreadsthatmustoccasionallywaitforeachother
名字好起吗
·
2019-06-03 00:09
java多线程
并发编程基础(上)
从我开始写博客到现在,已经写了不少关于并发编程的了,差不多还有一半内容整个
并发编程系列
就结束了,而今天这篇博客是比较简单的,只是介绍下并发编程的基础知识(==!
CodeBear
·
2019-05-05 09:00
Java
并发编程系列
一:Future和CompletableFuture解析与使用,java高级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家。扫描二维码或搜索下图红色VX号,加VX好友,拉你进【程序员面试学习交流群】免费领取。也欢迎各位一起在群里探讨技术。推荐文章:Java面试知识点解析;Mysql优化技巧(数据库设计、命名规范、索引优化一、Future模式Java1.5开始,提供了Callable和Future,通过它们可以在任务执行完
ccc_ccc8
·
2019-04-29 03:27
java
Java
并发编程系列
学习_原子操作类Atomic
一、原子操作类介绍在并发编程中很容易出现并发安全的问题,有一个很简单的例子就是多线程更新变量i=1,比如多个线程执行i++操作,就有可能获取不到正确的值,而这个问题,最常用的方法是通过Synchronized进行控制来达到线程安全的目的。但是由于synchronized是采用的是悲观锁策略,并不是特别高效的一种解决方案。实际上,在J.U.C下的atomic包提供了一系列的操作简单,性能高效,并能保
徐菜鸟
·
2019-04-09 13:31
Java开发语言
Java并发编程
Java
并发编程系列
之三:Java内存模型
引言在我们日常项目开发工作中,对于并发场景中经常出现的神奇的Bug大都是由于并发编程中的三个核心问题的不深入理解导致的,即如何进行高效的线程任务分配,如何有效的进行线程之间的相互协作以及如何保证在同一时刻只有一个线程进行共享变量的访问。那我们该如何解决并发编程这三座大山呢,这就需要我们对于Java的内存模型有着深入的理解。本文主要从以下几个方面来阐述Java的内存模型,希望对于学习并发编程的童鞋有
枫之慕
·
2019-03-22 19:31
Java多线程专题
Java
并发编程系列
-volatile
原创文章,转载请标注出处:《Java
并发编程系列
-volatile》一、概述据说,volatile是java语言中最轻量级的并发控制方式。
唯一浩哥
·
2019-01-17 18:32
并发编程系列
(1)- 线程池原理
一、线程池基本原理分析1、什么是线程池线程池就是一种池化技术,核心思想就是事先创建多个线程,将线程资源放到池子中,这样任务到达时可以不需要等到线程创建就能立刻去执行。创建线程池的好处:降低资源消耗。线程池可避免大量线程的创建于销毁造成的消耗。提高响应速度。任务到达时,线程池中线程可立即去执行,无需等待线程的创建。提高线程的可管理性。利用线程池可以进行统一分配、调优和监控。2、线程池原理当向线程池提
是Guava不是瓜娃
·
2018-12-22 17:30
多线程/并发
Java
并发编程系列
之十六:Lock锁
Lock锁简介Lock锁机制是JDK5之后新增的锁机制,不同于内置锁,Lock锁必须显式声明,并在合适的位置释放锁。Lock是一个接口,其由三个具体的实现:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁。增加Lock机制主要是因为内置锁存在一些功能上局限性。比如无法中断一
JingChC
·
2018-12-19 11:05
线程锁
Python
并发编程系列
之协程
1引言协程是近几年并发编程的一个热门话题,与Python多进程、多线程相比,协程在很多方面优势明显。本文从协程的定义和意义出发,结合asyncio模块详细讲述协程的使用。2协程的意义2.1什么是协程协程,又称微线程,英文名为Coroutine。对于多线程,在执行一个个不同任务时,遇到阻塞(例如IO操作)时,操作系统会自动将CPU资源切换给另一个线程。但协程不同,协程是用户态的轻量级线程,更多的依靠
奥辰
·
2018-12-08 15:00
Python
并发编程系列
之多线程
1引言上一篇博文详细总结了Python进程的用法,这一篇博文来所以说Python中线程的用法。实际上,程序的运行都是以线程为基本单位的,每一个进程中都至少有一个线程(主线程),线程又可以创建子线程。线程间共享数据比进程要容易得多(轻而易举),进程间的切换也要比进程消耗CPU资源少。线程管理可以通过thead模块(Python中已弃用)和threading模块,但目前主要以threading模块为主
奥辰
·
2018-12-07 12:00
Python
并发编程系列
之多进程(multiprocessing)
1引言本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心,通过实例代码对多进程设计到的进程间的同步机制、通信机制、数据共享机制进程池进行介绍。2创建进程创建进程有两种方式,分别是通过定义函数的方式和通过定义类的方式。两种方式创建进程都必须通过实例化Proces
奥辰
·
2018-12-06 09:00
Python
并发编程系列
之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程
1引言并发、并行、串行、同步、异步、阻塞、非阻塞、进程、线程、协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念。2并发与并行在解释并发与并行之前,我们必须先明确:单个处理器(一个单核CPU)在某一个时刻只能处理一个线程。并发是指在同一个处理器上通过时间片轮转的方式在多个线程之间频繁切换,由于切换速度极快,所以看似多个线程似乎被同时执行,但实际上每一个时
奥辰
·
2018-12-05 15:00
高
并发编程系列
:NIO、BIO、AIO的区别,及NIO的应用和框架选型
文章目录AIO、BIO、NIO的区别NIO的3个核心概念NIO的应用和框架谈到并发编程就不得不提到NIO,以及相关的JavaNIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及JavaNIO框架选型。AIO、BIO、NIO的区别IO模型主要分类:同步(synchronous)IO和异
-无妄-
·
2018-11-30 16:26
面试题整理
Java
并发编程系列
:漫谈伪共享
文章目录1.CPU缓存2.CPU缓存一致性协议2.1局部性原理2.2CacheLine2.3cache的写方式2.4一致性协议MESI3.伪共享4.复现伪共享5.如何避免伪共享伪共享的非标准定义为:缓存系统中是以缓存行(cacheline)为单位存储的,当多线程修改互相独立的变量时,如果这些变量共享同一个缓存行,就会无意中影响彼此的性能,这就是伪共享下面我们就来详细剖析伪共享产生的前因后果。首先,
TheLudlows
·
2018-11-21 19:43
并发编程
高
并发编程系列
:4大并发工具类的功能、原理、以及应用场景
通常我们所说的并发包也就是java.util.concurrent,集中了Java并发工具类和并发容器等,今天主要介绍Java并发编程的工具类,我先从Java并发工具包谈起。01—并发工具包涵盖范围1.并发工具类提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、CyclicBarrier、Semaphore等,可以实现更加丰富的多线程操作。2.并发容器提供各
jacljh
·
2018-11-12 21:29
java技术
多线程
JAVA并发编程之多线程并发同步业务场景与解决方案
本Java
并发编程系列
博客作为博主系统学习Java并发编程的知识记录。也希望可以帮助其他人。
图灵学院
·
2018-10-23 14:30
IT
Java
高并发
消息中间件
线程池
并发编程
JVM
分布式高可用
Java
并发编程系列
之闭锁(CountDownLatch)
在讲闭锁之前,我们先来思考一个问题:在多线程环境下,主线程打印一句话,如何保证这句话最后(其他线程全部执行完毕)打印?博主目前可以想到的实现方式有两种。一种是通过join()方法实现,另一种就是用闭锁。如果大家有好的解决办法,可以在下面留言,下面进入正题。一、什么是闭锁闭锁(CountDownLatch)是java.util.concurrent包下的一种同步工具类。闭锁可以用来确保某些活动直到其
留兰香丶
·
2018-09-14 17:16
Java
基础
Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java并发编程:线程间的协作
chenyiming2010
·
2018-08-27 15:29
Java多线程
并发编程系列
之CLH锁
CLH加锁&解锁流程CLHLock作为自旋、公平并发锁,其实现思路较为简单。文中使用了ThreadLocal结构来维护每个线程的当前结点(CurrentNode)和前驱结点(PrevNode)信息。当前线程通过调用lock()方法,在前驱结点的voliate变量lock自旋,实现对共享资源的监听。如图所示,在线程尝试取锁时,会在调用ThreadLocal.get()方法内部构造新的CLHNode,
classfly一号机
·
2018-07-03 00:26
Java基础
并发编程
Java并发编程一 多线程
本Java
并发编程系列
博客作为博主系统学习Java并发编程的知识记录。也希望可以帮助其他人。摘要1,线程概念2,Java线程的实现方式3,Java线程状态流转介绍4,Thread类中的常用方
刘越洋子
·
2018-05-04 16:30
Java学习笔记
干货:Java
并发编程系列
之volatile(二)
Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。java内存模型的核心是围绕着在并发过程中如何处理原子性、可见性、有序性这3个特性来展开的,它们是多线程编程的核心。原子性(Atomicity):是指一个操作是不可中断的,即使是多个线程同时执行的情况下,一个操作一旦开始,就不会被
Java技术宅
·
2018-04-12 14:16
java
volatile
并发编程
程序员
Java
架构
Java的高
并发编程系列
(七) ThreadLocal线程局部变量和线程安全的单例模式
ThreadLocal线程局部变量publicclassThreadLocal1{volatilestaticPersonp=newPerson();publicstaticvoidmain(String[]args){newThread(()->{try{TimeUnit.SECONDS.sleep(2);}catch(Exceptione){e.printStackTrace();}Syste
海蓝星上
·
2018-03-29 15:37
java
Java的高
并发编程系列
(四)
实现一个容器,提供两个方法,add,size,写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束,给lists添加volatile之后,t2能够接到通知,但是,t2线程的死循环很浪费cpu,如果不用死循环,该怎么做呢?这里使用wait和notify做到,wait会释放锁,而notify不会释放锁,需要注意的是运用这种方法,必须要保证t2先执行,
海蓝星上
·
2018-03-28 16:39
java
Java的高
并发编程系列
(二)volatile
挥发性关键字,使一个变量在多个线程间可见AB线程都用到一个变量,java默认是A线程中保留一份copy,这样如果B线程修改了该变量,则A线程未必知道,使用volatile关键字,会让所有线程都会读到变量的修改值。在下面的代码中,running是存在于堆内存的t对象中当线程t1开始运行的时候,会把running值从内存中读到t1线程的工作区,在运行过程中直接使用这个copy,并不会每次都去读取堆内存
海蓝星上
·
2018-03-28 16:11
java
Java 并发编程:volatile的使用及其原理
Java并发编程:volatile的使用及其原理Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(
Sasi_It_csdn
·
2018-01-26 15:14
并发编程
Java 并发编程:volatile的使用及其原理
阅读更多Java并发编程:volatile的使用及其原理Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化
Prophesy
·
2018-01-26 15:00
volatile的使用及其原理
thread
多线程
Java 并发编程:volatile的使用及其原理
阅读更多Java并发编程:volatile的使用及其原理Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化
Prophesy
·
2018-01-26 15:00
volatile的使用及其原理
thread
多线程
Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
阅读更多Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized
Prophesy
·
2018-01-26 15:00
java
Synchronized
Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)
阅读更多Java并发编程:Synchronized底层优化(偏向锁、轻量级锁)Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized
Prophesy
·
2018-01-26 15:00
java
Synchronized
Java并发编程:Synchronized及其实现原理
阅读更多Java并发编程:Synchronized及其实现原理Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized
Prophesy
·
2018-01-26 15:00
java
thread
Synchronized
Java并发编程:Synchronized及其实现原理
阅读更多Java并发编程:Synchronized及其实现原理Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized
Prophesy
·
2018-01-26 15:00
java
thread
Synchronized
Java 并发编程:线程间的协作(wait/notify/sleep/yield/join) Java
并发编程系列
: Java 并发编程:核心理论 Java
阅读更多Java并发编程:线程间的协作(wait/notify/sleep/yield/join)Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java
Prophesy
·
2018-01-26 15:00
java
线程间的协作
Java 并发编程:核心理论
Java并发编程:核心理论Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java
Sasi_It_csdn
·
2018-01-26 15:17
并发编程
Java 并发编程:核心理论
阅读更多Java并发编程:核心理论Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁
Prophesy
·
2018-01-26 15:00
并发编程
java
Java 并发编程:核心理论
阅读更多Java并发编程:核心理论Java
并发编程系列
:Java并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁
Prophesy
·
2018-01-26 15:00
并发编程
java
Java 高并发基础 课后笔记
马士兵老师高
并发编程系列
课后笔记大纲同步器(线程通信和同步)Synchronized�VolatileAtomicXXX(AtomicInteger…)ReentrantLockThreadLocal同步容器
Clixin
·
2017-12-11 07:09
Java
并发编程系列
:CyclicBarrier
CyclicBarrier简介CyclicBarrier也是基于ReentrantLock和Condition的一个同步工具类,它的作用是让一些线程到达某个公共屏障点时,等待未到达的线程。当所有线程到达屏障点时,继续往下执行。先看一个例子publicclassCyclicBarrierDemoimplementsRunnable{privateCyclicBarriercyclicBarrier;
TheLudlows
·
2017-09-28 11:21
并发编程
Java
并发编程系列
:Wait和Notify详解
Wait和Notify这两个方法在Object类中定义,当线程A调用wait方法之后,线程A会停止执行,转为等待阻塞状态,进入等待队列。这里要注意:1.调用wait方法前该线程持有调用wait方法对象的锁,同理notify方法一样。这点很重要。2.只有其他线程调用了notify方法,并且调用了notify方法的对象和上面所说的对象必须是同一个,才可能让A线程继续往下执行。直接上马:publiccl
TheLudlows
·
2017-09-16 22:49
并发编程
java并发编程(1)线程基础
多线程编程大家都觉得比较新鲜而又比较陌生,对于多线程编程的使用场景也不太了解,这个java
并发编程系列
的文章会从基础开始讲起,今天主要讲下java中的线程基础知识,让大家能快速上手并了解。
monkey01
·
2017-09-11 17:21
并发编程:线程池的使用与执行流程
并发编程系列
的文章酝酿好久了,但由于没有时间和毅力去写那么多练习demo,很多文章写了一半就停止了。
安卓进化论
·
2017-08-20 00:00
Java
并发编程系列
:锁优化
单核的并行算法的效率要低于原始串行的算法,因为并行多线程多了线程调度、上下文切换等开销。而单线程器主要资源都花在任务本身,他不需要维护数据结构的一致性,也不需要为线程的切换和调度花费时间。并行计算之所以能提高系统的性能,而是因为他更合理的进行任务调度,充分利用各个CPU的资源,合理的并发,才能将CPU的性能发挥到极致。在高并发的环境下,激烈的所竞争会导致程序的性能下降。1.减少锁的持有时间在必要时
TheLudlows
·
2017-08-09 10:19
并发编程
Java
并发编程系列
:CAS 详解
什么是无锁?无锁是一种乐观的策略,它会假设资源的访问时没有冲突的,没有冲突则不需要等待,所有的线程都可以在不停顿的状态下执行,如果遇到冲突,使用比较交换的技术(CAS)重试当前的操作直到没有冲突为止。CAS(比较交换)CAS算法过程:它包含三个参数CAS(v,e,n),v表示需要更新的变量,e表示预期的值,n表示新值,仅当v等于e时,才会将v的值设置为n。如果v值和e值不同,则说明已有其他线程做了
TheLudlows
·
2017-08-09 09:09
并发编程
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他