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
【高并发编程】
高并发编程
-06-可见性-volatile
1,volatile的作用volatile是一个轻量级的线程同步机制。它的特性之一,是保证了变量在线程之间的可见性。当然,还有我们之前说的,解决指令重排的问题volatile保证了在多个线程之间是可见的,但不能保证原子性操作当一个线程修改了变量的值之后,其他线程可以感知到2,volatilevssynchronizedsynchronized也是保证了线程的可见性,同时也具备了多线程之间的互斥性3
HuangGuiZhao
·
2018-01-12 14:05
可见性
volatile
高性能
并发编程
高并发编程
-05-活跃性问题-死锁,活锁,饥饿
死锁,饥饿,活锁1,死锁多个线程,各自占对方的资源,都不愿意释放,从而造成死锁工具:使用jconsole可以检测程序运行的死锁线程2,饥饿多个线程访问同一个同步资源,有些线程总是没有机会得到互斥锁,这种就叫做饥饿。出现饥饿的三种情况a,高优先级的线程吞噬了低优先级的线程的CPU时间片理论上来说,线程优先级高的线程会比线程优先级低的线程获得更多的执行机会,但是java的线程优先级绝对出现这样的效果。
HuangGuiZhao
·
2018-01-12 14:47
高并发
高性能
死锁
并发编程
高并发编程
-03-线程的安全性
之前,我们在前面已经介绍过了线程的安全性,本篇我们将继续来深挖这个问题,继续来探讨什么线程安全,原子性及加锁机制。1,什么是线程安全?线程安全,有两个关键词,“共享”和“可变”。共享是指可以被多个线程同时访问;可变是指变量的值在生命周期内是可以变化的;一个对象是否需要线程安全的,取决于它是否被多个线程访问;而如何保证一个对象的线程安全,则需要采用同步机制来协同对对象可变状态的访问。下面,我们给线程
老黄分享
·
2018-01-12 10:28
高并发
高性能
多线程
安全
高并发编程
高并发编程
-03-并发编程存在的风险
多线程的
高并发编程
提高了我们的CPU利用率及简化开发模式,但是又同时给我们带来了风险,使用不当就会有风险,那到底有什么风险?
HuangGuiZhao
·
2018-01-12 10:32
高性能
高并发
多线程
并发编程
高并发编程
-04-线程的安全性
之前,我们在前面已经介绍过了线程的安全性,本篇我们将继续来深挖这个问题,继续来探讨什么线程安全,原子性及加锁机制。1,什么是线程安全?线程安全,有两个关键词,“共享”和“可变”。共享是指可以被多个线程同时访问;可变是指变量的值在生命周期内是可以变化的;一个对象是否需要线程安全的,取决于它是否被多个线程访问;而如何保证一个对象的线程安全,则需要采用同步机制来协同对对象可变状态的访问。下面,我们给线程
HuangGuiZhao
·
2018-01-12 10:58
高性能
高并发
并发编程
高并发编程
-01-并发编程的发展历史
其实,在早期计算机并没有包含操作系统,这个时候,这个计算机只跑一个程序,这个程序独享计算机的所有资源,这个时候不存在什么并发问题,但是对计算机的资源来说,确实是一种浪费。于是,操作系统出现了,操作系统改变了这种现状,让计算机可以运行多个程序,并且不同的程序占用独立的计算机资源,如内存,CPU等。操作系统的出现,主要有以下几点原因:1,资源利用率:可以在其他程序执行过程出现等待的时候,去执行其他程序
HuangGuiZhao
·
2018-01-11 15:07
高并发
高性能
多线程
并发编程
高并发编程
-12-加点小菜-线程的合并join
join方法线程的join方法可以让一个线程等待另一个线程执行完毕后再执行。比如主线程调用子线程的join方法,就可以让子线程执行完毕后再执行案例:比如我们现在要统计一个数组的所有数字之和,我们将其拆分为两个线程来进行计算,最后合并这个计算结果,该怎么写?
LoveCoding
·
2018-01-11 10:56
高并发编程
-00-创建多线程的7种方式
1,继承Thread主要掌握:线程的初始化,启动,中断的正确处理方式(interrupted)publicclassDemo1{publicstaticvoidmain(String[]args){MyThreadthread=newMyThread();thread.start();}}classMyThreadextendsThread{@Overridepublicvoidrun(){Sys
老黄分享
·
2018-01-09 22:22
高并发编程
知名互联网公司校招 Java 开发岗面试知识点解析
主要包括以下几个部分:Java基础知识点Java常见集合
高并发编程
(JUC包)JVM内存管理Java8知识点网络协议相关数据库相关MVC框架相关大数据相关Linux命令相关面试,是大家从学校走向社会的第一步
爱学技术的小仙女酱
·
2017-12-28 16:23
Java 高并发基础 课后笔记
马士兵老师
高并发编程
系列课后笔记大纲同步器(线程通信和同步)Synchronized�VolatileAtomicXXX(AtomicInteger…)ReentrantLockThreadLocal同步容器
Clixin
·
2017-12-11 07:09
无标题文章
主要包括以下几个部分:Java基础知识点Java常见集合
高并发编程
(JUC包)JVM内存管理Java8知识点(大家可以加入java爱好者集结群,一同交流学习java:498290461)网络协议相关数据库相关
程序o07
·
2017-12-10 10:52
Java 高并发第三阶段实战---Java并发包深入解析与使用详解
并发包工具类详细介绍,3.线程服务以及Future和callable等详细介绍,4.高并发容器和阻塞容器详细介绍,云盘下载地址为:https://pan.baidu.com/s/1jIih1wM本套课程共计80集汪文君
高并发编程
第三阶段
wangwenjun69
·
2017-10-05 17:02
j2se学习笔记
java
单机千万并发连接实战
首发于网络
高并发编程
写文章单机千万并发连接实战dong1年前很早以前就听说了c10k,c100k,c1000k等问题,每个问题的解决都是并发编程的一个里程碑。
延卿
·
2017-09-03 18:33
c++
Java多线程编程实战指南(核心篇)读书笔记(三)
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76686044冷血之心的博客)博主准备恶补一番Java
高并发编程
相关知识
温柔狠角色
·
2017-08-04 15:50
Java
学习总结
Java干货交流区
Java 高并发基础
intro:读马士兵《Java
高并发编程
》记录推荐http://www.cnblogs.com/andy-zhou/p/5339683.htmlJMMsynchronizedlambdanewThread
real沛林
·
2017-08-03 00:02
java
#
JUC
高并发编程
必备基础
转载自并发编程网–ifeve.com
高并发编程
必备基础一、前言借用Java并发编程实践中的话”编写正确的程序并不容易,而编写正常的并发程序就更难了”,相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的
蔡梦缘
·
2017-06-22 10:04
线程安全
并发
java
多线程
深入理解Java虚拟
java线程
高并发编程
java线程详解及
高并发编程
庖丁解牛线程概述:祖宗:说起java
高并发编程
,就不得不提起一位老先生DougLea,这位老先生可不得了,看看百度百科对他的评价,一点也不为过:如果IT的历史,是以人为主体串接起来的话
酒醉梦醒
·
2017-05-29 23:12
java
java线程详解及
高并发编程
庖丁解牛
java线程详解及
高并发编程
庖丁解牛线程概述:祖宗:说起java
高并发编程
,就不得不提起一位老先生DougLea,这位老先生可不得了,看看百度百科对他的评价,一点也不为过:如果IT的历史,是以人为主体串接起来的话
LiuRenyou
·
2017-05-29 23:00
java
多线程
高并发
线程详细解析
Java基础之——线程通信的理解
前言:多线程的操作是
高并发编程
的基础,所以完全理解线程的操作是学好并发编程的第一步。1、stop():直接结束当前线程,不理会线程有没有执行完成2、sleep():让当前线程休眠一段时间之后执行。
fqf_520
·
2017-05-21 21:12
java工具学习
java多线程(1):线程的创建和多线程的安全问题
前言java多线程多用于服务端的
高并发编程
,本文就java线程的创建和多线程安全问题进行讨论。
name_s_Jimmy
·
2017-05-14 17:48
java
多线程
Thread
Runnable
实现
Java
Java
高并发编程
:使用JDK5中同步技术的3个面试题
第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。publicclassTest{publicstaticvoidmain(String[]args){System.out.println("begin:"+(System.currentTi
Jack-Chan
·
2017-01-17 09:31
Java高并发编程
[ 高并发]Java
高并发编程
系列第二篇--线程同步
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求,而且也能怎么你在整个项目中的一个处理逻辑的能力体现.那么,你真的知道什么是高并发吗?这不是一个很简单的话题.高并发,往往会牵扯到很多的问题,如何才能快速响应,如何处理各个线程之间的交互,如何完成逻辑之
千万之路刚开始
·
2017-01-06 20:00
channel Golang
channel基础(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程、管道等
高并发编程
知识
HackerVirus
·
2017-01-05 22:00
[高并发]Java
高并发编程
系列开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发.引用 多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出
千万之路刚开始
·
2017-01-04 21:00
Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序:因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程、管道等
高并发编程
知识。
指尖下的幽灵
·
2017-01-04 13:00
Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/)前序:因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程、管道等
高并发编程
知识。
指尖下的幽灵
·
2017-01-04 13:00
java
高并发编程
:1--内存模型
我们在学习Java
高并发编程
前,先了解一下《java内存管理(1)》、《Java垃圾回收(2)》、《java线程池使用》。
sabrinao0
·
2016-11-15 16:59
Java
高并发编程
:HandlerThread
1.HandlerThread的使用继承自Thread,在run()方法中,执行了Looper.prepare()和Looper.loop(),和handler结合使用,实现后台轮询线程功能start()quit()getLooper()publicclassHandlerThreadActivityextendsAppCompatActivity{privateTextViewmTvServic
Jack-Chan
·
2016-10-24 21:53
Java高并发编程
Java
高并发编程
:线程池
这里首先介绍了java5中的并发的小工具包:java.util.concurrent.atomic,然后介绍了线程池的概念,对使用java5的方式创建不同形式的线程进行了演示,之后介绍了两个对象:Callable和Future,用于获取线程执行后的结果,对于线程锁技术则在另外一篇文章中介绍。Java5中的线程并发库都在java.util.concurrent包及子包中1.Executor类的继承结
Jack-Chan
·
2016-10-24 20:24
Java高并发编程
Java
高并发编程
:线程锁技术
笔记摘要这里介绍了java5中的线程锁技术:Lock和Condition,实现线程间的通信,其中的读锁和写锁的使用通过一个缓存系统进行了演示,对于Condition的应用通过一个阻塞队列进行演示。线程锁技术:Lock&Condition实现线程同步通信所属包:java.util.concurrent.locks线程锁说明Synchronized同步方法,锁对象是this;同步静态方法,锁对象是字节
Jack-Chan
·
2016-10-24 20:55
Java高并发编程
关于网络IO中的同步、异步、阻塞、非阻塞
在
高并发编程
当中,我们经常会遇到一些异步、非阻塞等一些概念,一些常用的技术比如异步的httpclient、nettynio、nginx、node.js等,它们的原理大都跟异步、非阻塞有关。
suifeng3051
·
2016-10-10 17:00
异步
非阻塞
IO模型
IO多路复用
java
高并发编程
:11--ReentrantReadWriteLock深入分析
一、ReentrantReadWriteLock与ReentrantLock说到ReentrantReadWriteLock,首先要做的是与ReentrantLock划清界限。它和后者都是单独的实现,彼此之间没有继承或实现的关系。ReentrantLock实现了标准的互斥操作,也就是一次只能有一个线程持有锁,也即所谓独占锁的概念。前面的章节中一直在强调这个特点。显然这个特点在一定程度上面减低了吞吐
crazzy_lp
·
2016-06-27 15:49
Java锁
Java共享锁
Java读写锁
Java高并发与线程安全
java编程
java
高并发编程
:10--ReentrantLock深入分析
阅读更多一、什么是reentrantlockjava.util.concurrent.lock中的Lock框架是锁定的一个抽象,它允许把锁定的实现作为Java类,而不是作为语言的特性来实现。这就为Lock的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或者锁定语义。ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,但是添加了类似锁投票、
student_lp
·
2016-06-27 15:00
Java锁
互斥锁
Java高并发锁
线程安全锁
ReenTrantLock
java
高并发编程
:10--ReentrantLock深入分析
阅读更多一、什么是reentrantlockjava.util.concurrent.lock中的Lock框架是锁定的一个抽象,它允许把锁定的实现作为Java类,而不是作为语言的特性来实现。这就为Lock的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或者锁定语义。ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,但是添加了类似锁投票、
student_lp
·
2016-06-27 15:00
Java锁
互斥锁
Java高并发锁
线程安全锁
ReenTrantLock
java
高并发编程
:5--ConcurrentLinkedQueue的实现原理分析
阅读更多1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列Concurren
student_lp
·
2016-06-23 11:00
java
queue
Java队列线程安全
Java队列高并发
java
高并发编程
:5--ConcurrentLinkedQueue的实现原理分析
阅读更多1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列Concurren
student_lp
·
2016-06-23 11:00
java
queue
Java队列线程安全
Java队列高并发
java
高并发编程
:6--深入分析ConcurrentHashMap
阅读更多1.术语定义术语英文解释哈希算法hashalgorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hashtable根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。2.线程不安全的HashMap因为多线程环
student_lp
·
2016-06-23 10:00
Java
Map
Map线程安全
Map并发编程
java
高并发编程
:6--深入分析ConcurrentHashMap
阅读更多1.术语定义术语英文解释哈希算法hashalgorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hashtable根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。2.线程不安全的HashMap因为多线程环
student_lp
·
2016-06-23 10:00
Java
Map
Map线程安全
Map并发编程
Java
高并发编程
:3----Synchronized
阅读更多1引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着JavaSE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了JavaSE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2术语定义术语英文说明CASCompareandSwap比较并设置。用于在硬
student_lp
·
2016-06-21 11:00
并发编程
Java并发安全
Java并发控制
Java锁
Java
高并发编程
:3----Synchronized
阅读更多1引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着JavaSE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了JavaSE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2术语定义术语英文说明CASCompareandSwap比较并设置。用于在硬
student_lp
·
2016-06-21 11:00
并发编程
Java并发安全
Java并发控制
Java锁
java
高并发编程
:4--Java中的阻塞队列
阅读更多1.什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:方法\
student_lp
·
2016-06-21 11:00
队列
queue
Java高并发
Java线程安全
Java队列使用
java
高并发编程
:4--Java中的阻塞队列
阅读更多1.什么是阻塞队列?阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。阻塞队列提供了四种处理方法:方法\
student_lp
·
2016-06-21 11:00
队列
queue
Java高并发
Java线程安全
Java队列使用
java
高并发编程
:2--volatile可见性同步
阅读更多Java语言中的volatile变量可以被看作是一种“程度较轻的synchronized”;与synchronized块相比,volatile变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized的一部分。锁提供了两种主要特性:互斥(mutualexclusion)和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该
student_lp
·
2016-06-12 11:00
volatile变量
可见性同步
Java并发编程
线程安全
java
高并发编程
:2--volatile可见性同步
阅读更多Java语言中的volatile变量可以被看作是一种“程度较轻的synchronized”;与synchronized块相比,volatile变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized的一部分。锁提供了两种主要特性:互斥(mutualexclusion)和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该
student_lp
·
2016-06-12 11:00
volatile变量
可见性同步
Java并发编程
线程安全
java
高并发编程
:1--内存模型
我们在学习Java
高并发编程
前,先了解一下《java内存管理(1)》、《Java垃圾回收(2)》、《java线程池使用》。
crazzy_lp
·
2016-06-08 10:26
java编程
java
高并发编程
——violate关键字使用场景
package com.fsun.research.thread.violate; public class MainTest { private static boolean ready; private static class CounterThread implements Runnable{ @Override public void run() { while(!ready){
mr-S
·
2015-11-21 22:00
上周热点回顾(11.18-11.24)
middot; 大湿教我写.net通用权限框架(1)之菜单导航篇(微软高级php工程师) · 100行代码实现手机被窝里电脑关机功能(遗忘海岸) · 杂谈---第一次真正的
高并发编程
体验
·
2015-10-21 12:48
回顾
Java
高并发编程
——为IO密集型应用设计线程数与划分任务
文章转自:http://www.tuicool.com/articles/fA7rMn实际工作中的三类程序适用于以并发的形式来提速:1.服务程序:同时响应多个用户请求2.计算密集型程序:并发计算,将问题拆分为子任务、并发执行各子任务并最终将子任务的结果汇总合并。3.IO密集型程序(阻塞型):常需要阻塞等待的程序,比如说因为网络环境阻塞等待,因为IO读取阻塞等待。当一个任务阻塞在IO操作上时,我们可
chen517611641
·
2014-11-20 10:00
java
并发
线程
线程池
性能优化
Ruby社区应该去Rails化了
月的报导:Linkedin从ruby迁移到node.js,30台服务器减到3台,以及2013年3月的报导:Iron.io从ruby迁移到Go,30台服务器减到2台node.js和Go都是最近两年服务器端
高并发编程
的热门语言
dazhi_100
·
2014-08-12 15:00
nio
高并发编程
之前http://blog.csdn.net/sunmenggmail/article/details/8638480已经整理过,这次是2.0版参考:http://daizuan.iteye.com/blog/1112909http://daizuan.iteye.com/blog/1113471http://www.cnblogs.com/pingh/archive/2013/07/30/322
sunmenggmail
·
2013-08-12 22:00
上一页
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
其他