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
多线程系列
--“JUC锁”01之框架Java
多线程系列
--“JUC锁”02之互斥锁ReentrantLockJava
多线程系列
--“JUC锁”03之公平锁(一)Java
多线程系列
--“JUC锁”
ls5718
·
2016-06-29 20:00
并发
集合
C++
多线程系列
(一)CreateThread和_beginthreadex区别
现在在学习多线程,顺便将搜集到的资料整理下来以供参考和查询。首先在开始多线程学习的时候遇到的首要问题便是多线程的创建,在查阅资料后有CreateThread和_beginthreadex两种方法,可能不止这两种,以后学习到了再补充。----------------------------------------------20160914更新----------------------------
梧桐栖鸦
·
2016-06-29 11:32
C\C++
【java
多线程系列
】java中的volatile的内存语义
在java的多线程编程中,synchronized和volatile都扮演着重要的角色,volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性,可见性指的是当一个线程修改一个共享变量时,另一个线程能够读到这个修改后的值。如果volatile修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。本文将从vol
htq__
·
2016-06-27 13:00
java
多线程
volatile
内存可见性
【java
多线程系列
】java内存模型与指令重排序
在多线程编程中,需要处理两个最核心的问题,线程之间如何通信及线程之间如何同步,线程之间通信指的是线程之间通过何种机制交换信息,同步指的是如何控制不同线程之间操作发生的相对顺序。很多读者可能会说这还不简单,java中的同步采用的是锁机制或volatile来完成的,的确,在应用层,java中的同步的确是通过加锁来完成的,但是锁机制是如何实现的呢?这就涉及到java中的内存模型的相关知识。本博客将带领大
htq__
·
2016-06-26 10:00
java
多线程
缓存
java内存模型
处理器
刨根问底Java
多线程系列
(2):线程不安全的最根本的原因是什么
一、引言在多线程环境中,线程安全毫无疑问是最主要面对的问题。找到线程不安全的根源,就好像找到了一把万能钥匙,解开程序中的任何线程不安全隐患。二、分析对于线程安全的定义,《深入理解Java虚拟机:JVM高级特性与最佳实践》(P343)认为《JavaConcurrencyInPractice》的作者BrianGoetz对“线程安全”的定义比较恰当:“当多个线程访问一个对象时,如果不用考虑这些线程在运行
运猫
·
2016-06-20 16:42
Java
java
多线程系列
3-线程同步
如果一个资源被多个线程同时访问,可能会遭到破坏,这篇文章介绍java线程同步来解决这类问题引入问题某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计一个程序模拟该电影院售票。方法一:继承Thread类publicclassSellTicketextendsThread{ //定义100张票 //privateinttickets=100; //为了让多个线程对象
wuyudong
·
2016-05-14 10:00
java
多线程系列
2-线程控制
前面的文章已经介绍了有关线程的调度,接下来介绍如何使用方法对线程进行控制1、线程休眠publicstaticvoidsleep(longmillis)/* *线程休眠 *publicstaticvoidsleep(longmillis) */ publicclassThreadSleepDemo{ publicstaticvoidmain(String[]args){ ThreadSl
wuyudong
·
2016-05-14 10:00
java
多线程系列
1--线程实现与调度
java的重要功能之一就是内部支持多线程,这一系列文章将详细剖析java多线程的基础知识多线程概述多线程引入程序只有一个执行流程,所以这样的程序就是单线程程序。假如一个程序有多条执行流程,那么,该程序就是多线程程序。进程:正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。线程:是进程中的单个顺序控制流,是一条执行路径。一个进程如果只有一条执行路径,则称为
wuyudong
·
2016-05-14 00:00
带你玩转java
多线程系列
“道篇” 多线程的优势及利用util.concurrent包测试单核多核下多线程的效率
java多线程“道篇”-多线程的优势及用concurrent包测试单核多核下多线程的效率1超哥对于多线程自己的理解2测试代码3CountDownLatch这个同步辅助类科普4如何把电脑设置成单核5测试结果 1超哥对于多线程自己的理解 超哥的理解:对于多线程,无非是对于顺序执行下任务的一种抽取和封装,将原来顺序执行的任务单独拿出来放到线程类的run方法中,通过线程类的start方法进行执行,对于多线
winAlaugh
·
2016-05-10 17:00
Java
多线程系列
--“JUC线程池”02之 线程池原理(一)
概要在上一章"Java
多线程系列
--“JUC线程池”01之线程池架构"中,我们了解了线程池的架构。线程池的实现类是ThreadPoolExecutor类。
bigtree_3721
·
2016-05-08 13:00
java
线程池
Java
多线程系列
目录
原文地址: http://www.cnblogs.com/skywang12345/p/java_threads_category.htmlJava
多线程系列
目录(共43篇) 最近,在研究Java多线程的内容目录
bigtree_3721
·
2016-05-08 12:00
Java
多线程系列
--“JUC集合”04之 ConcurrentHashMap
概要本章是JUC系列的ConcurrentHashMap篇。内容包括:ConcurrentHashMap介绍ConcurrentHashMap原理和数据结构ConcurrentHashMap函数列表ConcurrentHashMap源码分析(JDK1.7.0_40版本)ConcurrentHashMap示例出处:http://www.cnblogs.com/skywang12345/p/34985
bigtree_3721
·
2016-05-08 12:00
Java
多线程系列
--“JUC集合”03之 CopyOnWriteArraySet
概要本章是JUC系列中的CopyOnWriteArraySet篇。接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArraySet。内容包括:CopyOnWriteArraySet介绍CopyOnWriteArraySet原理和数据结构CopyOnWriteArraySet函数列表CopyO
bigtree_3721
·
2016-05-08 11:00
多线程
mysql
Java
多线程系列
--“JUC集合”02之 CopyOnWriteArrayList
出处:http://www.cnblogs.com/skywang12345/p/3498483.html概要本章是"JUC系列"的CopyOnWriteArrayList篇。接下来,会先对CopyOnWriteArrayList进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解CopyOnWriteArrayList。内容包括:CopyOnWriteArrayLis
bigtree_3721
·
2016-05-08 11:00
java
多线程
Java
多线程系列
--“JUC集合”01之 框架
概要之前,在"Java集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类出处:http://www.cnblogs.com/skywang12345/p/3498454.html Java集合包在“Java集合系列01之总体框架”中,介绍java集合的
bigtree_3721
·
2016-05-08 11:00
java
多线程
juc
Java
多线程系列
--“基础篇”03之 Thread中start()和run()的区别
Java
多线程系列
--“基础篇”03之Thread中start()和run()的区别:http://www.cnblogs.com/skywang12345/p/3479083.html2.如何创建并运行
ly969434341
·
2016-04-25 18:00
java
多线程系列
:锁
本文属于并发编程网的多线程学习系列,原文如下:锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂。自Java5开始,java.util.concurrent.locks包中包含了一些锁的实现,因此你不用去实现自己的锁了。但是你仍然需要去了解怎样使用这些锁,且了解这些实现背后的理论也是很有用处的。一个简单的锁:让我们从java中的一个同步
bohu83
·
2016-04-12 21:00
多线程
线程安全
锁
java
多线程系列
:死锁及检测
本文属于并发编程网多线程学习梳理系列。原文如下:死锁死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候。例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不到A,并且它们永远也不会知道发生了这样的事情。为了得到彼此的对象(A和B),
bohu83
·
2016-04-12 17:45
并发系列整理
windows
多线程系列
002 利用互斥对象实现线程同步
接着上一篇文章我们继续讨论多线程的问题,这一次我们利用互斥对象(mutex)来解决火车站售票同步问题。1利用互斥对象实现线程同步互斥对象(mutex)属于内核对象,它能够确保线程拥有对单个资源的互斥访问权。互斥对象包含一个使用数量,一个线程ID和一个计数器。在这一节我们会用到三个函数,(1)创建互斥对象CreateMutex函数的原型声明HANDLEWINAPICreateMutexW(_In_o
DaveBobo
·
2016-04-11 20:05
多线程网络数据库
windows
多线程系列
002_利用互斥对象实现线程同步
接着上一篇文章我们继续讨论多线程的问题,这一次我们利用互斥对象(mutex)来解决火车站售票同步问题。1利用互斥对象实现线程同步互斥对象(mutex)属于内核对象,它能够确保线程拥有对单个资源的互斥访问权。互斥对象包含一个使用数量,一个线程ID和一个计数器。在这一节我们会用到三个函数,(1)创建互斥对象CreateMutex函数的原型声明HANDLE WINAPI CreateMutexW(
DaveBobo
·
2016-04-11 20:00
多线程系列
:TheadLocal
本文属于并发编程网多线程学习笔记系列。原文地址:http://ifeve.com/java-theadlocal/以下为原文:Java中的ThreadLocal类可以让你创建的变量只被同一个线程进行读和写操作。因此,尽管有两个线程同时执行一段相同的代码,而且这段代码又有一个指向同一个ThreadLocal变量的引用,但是这两个线程依然不能看到彼此的ThreadLocal变量域。常用方法:1创建一个
bohu83
·
2016-04-11 18:00
多线程
线程安全
windows
多线程系列
006 WaitForMultipleObjects详解
有时我们会用到WaitForMultipleObjects()这个函数,在这里我们简单了解一下该函数的使用,先看函数原型:DWORDWINAPIWaitForMultipleObjects(_In_DWORDnCount,_In_reads_(nCount)CONSTHANDLE*lpHandles,_In_BOOLbWaitAll,_In_DWORDdwMilliseconds);nCount句
DaveBobo
·
2016-04-11 17:08
多线程网络数据库
windows
多线程系列
006_WaitForMultipleObjects详解
有时我们会用到WaitForMultipleObjects()这个函数,在这里我们简单了解一下该函数的使用,先看函数原型:DWORD WINAPI WaitForMultipleObjects( _In_DWORDnCount, _In_reads_(nCount)CONSTHANDLE*lpHandles, _In_BOOLbWaitAll, _In_DWORDdwMilliseconds
DaveBobo
·
2016-04-11 17:00
windows
多线程系列
004_利用关键代码段实现线程同步
首先,看概念:关键代码段,也称为临界区,工作在用户方式下。它是指一小段代码段,在代码能够执行前,它必须独占对某些资源的访问权。了解完概念,同样看4个函数原型:(1)InitializeCriticalSection()初始化关键代码段VOID WINAPI InitializeCriticalSection( _Out_LPCRITICAL_SECTIONlpCriticalSection );l
DaveBobo
·
2016-04-11 17:00
windows
多线程系列
003 利用事件对象实现线程同步
这一篇还是讨论多线程的问题,在这一篇中我们使用事件对象来解决同样的问题(火车站售票),还是先看我们需要用到的三个函数的原型:(1)CreateEvent()创建事件对象HANDLE WINAPI CreateEvent( _In_opt_LPSECURITY_ATTRIBUTESlpEventAttributes, _In_BOOLbManualReset, _In_BOOLbInitialSta
DaveBobo
·
2016-04-11 17:00
windows
多线程系列
005_利用信号量实现线程同步
在这一节,我们将讲解关于windows信号量的知识,信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作,首先先介绍和windows信号量有关的两个API:创建信号量、释放信号量HANDLEWINAPICreateSemaphore( _In_opt_LPSECURITY_ATTRIBUTESlpSemaphoreAttributes _In_LO
DaveBobo
·
2016-04-11 17:00
windows
多线程系列
003_利用事件对象实现线程同步
这一篇还是讨论多线程的问题,在这一篇中我们使用事件对象来解决同样的问题(火车站售票),还是先看我们需要用到的三个函数的原型:(1)CreateEvent()创建事件对象HANDLE WINAPI CreateEvent( _In_opt_LPSECURITY_ATTRIBUTESlpEventAttributes, _In_BOOLbManualReset, _In_BOOLbInitialSta
DaveBobo
·
2016-04-11 17:00
windows
多线程系列
001_火车站售票系统模拟程序
其实我对多线程这一块一直也不是很熟悉,现在正好在项目中需要用到对多线程的优化问题,因此我对多线程的相关知识点进行了学习和总结,在此和大家一起学习和交流。这个系列主要涉及到进程和线程的概念以及利用互斥对象、事件对象与关键代码段等机制处理线程问题的实例讲解。1进程和线程 首先我们需要对进程和线程的概念做个了解。程序是计算机指令的集合,它以文件的形式存储在磁盘上。而进程通常被定义为一个正
DaveBobo
·
2016-04-11 17:00
多线程系列
:线程通信
线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。本文将讲解以下几个JAVA线程间通信的主题:1、通过共享对象通信2、忙等待3、wait(),notify()和notifyAll()4、丢失的信号5、假唤醒6、多线程等待相同信号7、不要对常量字符串或全局对象调用wait()1、通过共
bohu83
·
2016-04-11 14:00
多线程
通信
线程安全
多线程系列
:java同步块
Java 同步关键字(synchronized)Java中的同步块用synchronized标记。同步块在Java中是同步在某个对象上。所有同步在一个对象上的同步块在同时只能被一个线程进入并执行操作。所有其他等待进入该同步块的线程将被阻塞,直到执行该同步块中的线程退出。有四种不同的同步块:实例方法静态方法实例方法中的同步块静态方法中的同步块上述同步块都同步在不同对象上。实际需要那种同步块视具体情况
bohu83
·
2016-04-11 10:00
多线程
并发
线程安全
多线程系列
:线程安全及不可变性
当多个线程同时访问同一个资源,并且其中的一个或者多个线程对这个资源进行了写操作,才会产生竞态条件。多个线程同时读同一个资源不会产生竞态条件。我们可以通过创建不可变的共享对象来保证对象在线程间共享时不会被修改,从而实现线程安全。如下示例:01public class ImmutableValue{02 private int value= 0;03 04 public Immutable
bohu83
·
2016-04-10 21:00
并发
线程安全
多线程系列
:竞态临界区、共享资源
竞态临界区在同一程序中运行多个线程本身不会导致问题,问题只有在一或多个线程向这些资源做了写操作时才有可能发生,只要资源没有发生变化,多个线程读取相同的资源就是安全的。多线程同时执行下面的代码可能会出错:1public class Counter{2 protected long count= 0;3 public void add(long value){4 this.c
bohu83
·
2016-04-10 20:00
多线程系列
:并发编程模型
本文属于并发编程网多线程学习系列。并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的线程如何通过协作来完成分配给它们的作业。并行工作者传入的作业会被分配到不同的工作者上。下图展示了并行工作者模型:在并行工作者模型中,委派者(Delegator)将传入的作业分配给不同的工作者。每个工作者完成整个任务。工作者们并行运作在不同的线程上,甚至可能在不同的CPU上。在Java应用系统中,并行工作
bohu83
·
2016-04-10 09:00
多线程系列
:一介绍
本文是从结合并发编程网的学习笔记,主要是关注java的多线程及并发性。优点:资源利用率更好程序响应更快可以理解为更充分利用多核CPU的资源,去编写高性能的程序。缺点:设计更复杂:可以这样理解,要真确处理多线程直接数据同步的问题。上下文切换的开销:当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行
bohu83
·
2016-04-09 22:00
Java
多线程系列
--“JUC线程池”06之 Callable和Future
概要本章介绍线程池中的Callable和Future。Callable和Future简介示例和源码分析(基于JDK1.7.0_40)转载请注明出处:http://www.cnblogs.com/skywang12345/p/3544116.html Callable和Future简介Callable和Future是比较有趣的一对组合。当我们需要获取线程的执行结果时,就需要用到它们。Callable
wzyxidian
·
2016-03-20 23:00
Java
多线程系列
一、参考文献1、:Java
多线程系列
目录(一)基础篇01. Java
多线程系列
--“基础篇”01之基本概念02. Java
多线程系列
--“基础篇”02之常用的实现多线程的两种方式03.
March On
·
2016-03-15 21:00
java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)
多线程系列
教程:java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二
zejian_
·
2016-03-13 16:20
android多线程
java多线程
java&android多线程
java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二)
多线程系列
教程:java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二
javazejian
·
2016-03-13 16:00
java多线程
android多线程
java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)
多线程系列
教程:java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二
zejian_
·
2016-03-13 16:45
java&android多线程
java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)
多线程系列
教程:java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)java多线程同步以及线程间通信详解&消费者生产者模式&死锁&Thread.join()(多线程编程之二
javazejian
·
2016-03-13 16:00
java多线程
多线程基础知识
android多线程基础知识
多线程系列
线程池ThreadPool
上一篇文章我们总结了多线程最基础的知识点Thread,我们知道了如何开启一个新的异步线程去做一些事情。可是当我们要开启很多线程的时候,如果仍然使用Thread我们需要去管理每一个线程的启动,挂起和终止,显然是很麻烦的一件事情。还好.netframework为我们提供了线程池ThreadPool来帮助我们来管理这些线程,这样我们就不再需要手动地去终止这些线程。这一篇文章就让我们来学习一下线程池Thr
ChineseMoonGod
·
2016-03-02 14:00
多线程系列
使用多线程的安全问题
在使用多线程的时候,往往存在一定的公共数据,为了避免多个线程同时操作同一数据,我们需要为线程加锁。加锁的原理:每一个引用类型的对象都有一个同步索引块,指示当前使用该对象的线程数,每个线程执行到Lock语句块的时候就会判断当前锁定项(这里是this,当前窗体对象)的同步索引块是否等于0(即没有线程在访问该变量),如果等于0则进入执行块,首先将同步索引块的索引加1,表示当前多了一个线程使用this,等
ChineseMoonGod
·
2016-03-02 14:00
java
多线程系列
01——多线程基础
首先写java
多线程系列
01——多线程基础知识,多线程向来是企业面试编程技术的最长见的题目了,不管是单独问还是嵌入到项目中问,反正都会问问。
huangbin6
·
2016-02-29 21:00
多线程
线程
线程组
线程创建
Java
多线程系列
目录(共43篇)
Java
多线程系列
目录(共43篇) 最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。(一)基础篇01. Java
多线程系列
--“基础篇”01之基本概念02.
foxeye
·
2016-02-29 15:00
java
多线程
多线程系列
原创文章的说明
为了尊重版权,这里标明到目前为止,多线程技术的学习都是参考如下两本书籍:Java多线程编程核心技术高洪岩机械工业出版社Java并发编程实践BrianGoetz,TimPeierls,JoshuaBloch,JosephBowbeer,DavidHolmes,DougLea机械工业出版社其中有些项目上的应用是自己经过学习写的代码,后续会有JDK多线程源代码分析,这些将会是自己的学习结果。特此说明。
sinat_33186733
·
2016-02-27 11:00
java
多线程
java
多线程系列
之 synchronized
一、synchronized基本原理java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,知道线程
情歌z
·
2015-12-16 14:00
线程创建
java
多线程系列
目录:(1)线程创建(2)线程调度(3)线程交互(4)线程同步——synchoronized(5)线程同步——volatile(6)线程同步——死锁(7)线程同步——生产者消费者(8)
wjk_snail
·
2015-12-12 16:00
【Java并发编程实战】—–“J.U.C”:ReentrantLock之二lock方法分析
首先我们来看ReentrantLock的结构【图来自Java
多线程系列
–“JUC锁”03之公平锁(一)】:从上图我们可以看到,Reentr
youxia0075454
·
2015-11-30 10:00
java
thread
并发
线程
总结windows多线程同步互斥
windows多线程同步互斥--总结 我的windows
多线程系列
文章: windows多线程--原子操作 windows多线程同步--事件 windows多线程同步--互斥量 windows
·
2015-11-13 18:30
线程同步
windows线程同步
读者写者问题(一)
阅读MoreWindows大神的秒杀
多线程系列
至第十一篇读者写着问题,做一点小小的总结; 读者写者问题描述
·
2015-11-13 07:15
问题
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他