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
并发学习
笔记(11)阻塞线程
阻塞指的是暂停一个线程的执行以等待某个条件发生.java实现阻塞的方式如下几种:(1)调用Thread.sleep()方法它已毫秒作为单位让该线程睡眠一段时间,到时间后会自行唤起线程.也可以使用TimeUnit.XX.sleep()XX是TimeUnit的常量代表休眠的时间单位具体查看JDK即可.(2)使用Thread的suspend()和resume()方法不过使用suspend方法会引起死锁,
joker_zhou
·
2014-07-17 16:00
java
jdk
thread
object
任务
Java
并发学习
笔记(7)线程的同步 (锁)
如果数据是非原子性操作,那么必须实现线程的同步化.在多线程的程序中,不建议使用惰性初始化(检查在运行)比如if(XX==null){returnnewXX}这种操作.PS:原子操作:指的是单独的,不可分割的操作去执行.比如A线程和B线程,从A线程的角度来看,当其他线程执行B线程的时候,要么B完全执行完,要么一点都没有执行;在java中i++这种操作并不是原子性的,它分为3个步骤完成,读取i值i+1
joker_zhou
·
2014-07-17 16:00
java
jvm
多线程
优化
object
Signal
Java
并发学习
笔记(17)性能,分离锁
多线程往往比单线程开销要大,这包括加锁释放锁,信号,同步,切换,线程的创建销毁,调度.(1)如何优化性能: 如果重复计算量大的话,使用缓存来保存旧的结果.以便下次计算时使用. 减少阻塞.运行和阻塞会增加上下文切换. 因为锁是串行的这会引起大量的阻塞:所以我们在使用锁的时候要尽量的做到以下几点: i. 减少锁的持有时间(尽量使用synchronized或者显示
joker_zhou
·
2014-07-17 16:00
java
多线程
优化
object
Java
并发学习
笔记(13)线程之间的协作(Object.wait(),notifu(),notifyAll() Thread.join())
(1)wait(),notify(),notifyAll()a) 前面已经介绍三个方法的用法和作用,wait还有个重要的作用就是在挂起线程的时候释放对象锁.这样可以使其他线程获得释放掉的锁.(2)join()a) 一个线程在另一个线程调用join那么另一个线程需要等待第一个线程完成后才可以继续运行(3)线程之间的通信a) 线程之间的通信可以使用管道流进行交互:i. 使用PipedInput
joker_zhou
·
2014-07-17 16:00
java
JOIN
Java
并发学习
笔记(5)停止基于线程的服务
基于线程的服务,典型的就属于线程池了.这些服务通常的一点是,它们存在的时间通常比创建它们的方法存在的时间更久一些.程序拥有服务,服务拥有线程,但是程序并不一定拥有线程,因此程序不应该试图直接停止服务中的线程.所以服务应该提供控制其内部线程的生命周期的方法.(如同线程池ExecutorService的shutdown/shudownNow),不要发布线程给程序.让程序多管闲事.对于线程持有的服务,只
joker_zhou
·
2014-07-17 16:00
java
thread
JAVA多线程与
并发学习
总结
1. 计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。 缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存
hi_henainchun
·
2014-06-15 14:00
java
JAVA多线程与
并发学习
总结
1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单
张升强
·
2014-03-19 10:00
【转】
JAVA多线程与
并发学习
总结 1.
woaiyuexi
·
2014-03-13 11:00
java
Java多线程与
并发学习
笔记
Volatile Volatile的英文解释:adj.易变的,不稳定的. 对于Volatile类型的变量来说,上一次写入操作的结果对下一次读取操作是肯定可见的。在写入volatile变量值之后,CPU缓存中的内容会被写回主存,在读取volatile变量时,CPU缓存中的对应内容被设置为失效状态,重新从主存中进行读取。将变量声明为volatile相当于为单个变量的读取和写入添加了同步操作。但是v
darrenzhu
·
2013-12-31 13:00
多线程
thread
并发
同步
cocurrence
Java多线程与
并发学习
笔记
Volatile Volatile的英文解释:adj.易变的,不稳定的. 对于Volatile类型的变量来说,上一次写入操作的结果对下一次读取操作是肯定可见的。在写入volatile变量值之后,CPU缓存中的内容会被写回主存,在读取volatile变量时,CPU缓存中的对应内容被设置为失效状态,重新从主存中进行读取。将变量声明为volatile相当于为单个变量的读取和写入添加了同步操作。但是v
darrenzhu
·
2013-12-31 13:00
多线程
thread
并发
同步
cocurrence
java
并发学习
之CountDownLatch
从javase5开始,java.util.concurrent中就引入了大量设计用来解决并发问题的新类。学习使用这些新类有助于我们编写出更加简单而健壮的并发程序。今天我们开始学习第一个类:CountDownLatch他被用来同步一个或多个任务,强制他们等待其他任务执行完毕。countdownlatch中有一个初始计数值,任何在countdown对象上调用await()方法的任务都将被阻塞,直到初始
hyfclimber
·
2013-12-29 12:00
java
并发
CountDownLatch
Java5
并发学习
http://lavasoft.blog.51cto.com/62575/115112/在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务 任务就是一个实现了Ru
feier7501
·
2013-11-07 21:00
线程
并发学习
五(基础构建模块)
1.将线程安全类委托给现有的线程安全类,只需让现有的线程安全类管理多有的状态即可。 2.Java平台类库包含了丰富的并发基础构建模块,例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(synchronizer); 3.同步容器类:同步容器类是线程安全的,但在某些情况下,可能需要额外的客户端加锁来保护符合操作. 早期的jdk中,同步容器类包括Vector 和 Ha
annybz
·
2013-10-17 11:00
java 线程并发
线程
并发学习
四(对象的组合)
1.设计线程安全类的过程中,需要包含以下三个基本要素 a,找出构成对象状态的所有变量。 b,找出约束状态变量的不变性条件 c,建立对象状态的并发访问管理策略 要分析对象的状态,首先从对象的域开始,如果对象中所有的域都是基本类型的变量,那么这些域将构成对象的全部状态。 2.要确保类的线程安全性,就需要确保它的
annybz
·
2013-10-15 16:00
Java 并发编程
Java并发基础实践--退出任务I(原)
Java并发基础实践--退出任务I(原)Java并发基础实践--退出任务I计划写一个"Java并发基础实践"系列,算作本人对Java
并发学习
与实践的简单总结。
Jiangshachina
·
2013-09-21 19:00
JAVA多线程与
并发学习
总结分析
1.计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位能尽量被
·
2013-08-16 10:26
NIO学习笔记一(概述)
另外发现了一个关于
并发学习
的网站,对于学习并发是个比较好的选择,网址如下: http://ifeve.com/category/concurrency-tran
iverson1259
·
2013-06-28 16:00
nio
JAVA多线程与
并发学习
总结
阅读更多1.计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位
hunankeda110
·
2013-05-25 19:00
java
多线程
并发
同步锁
JAVA多线程与
并发学习
总结
1. 计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。 缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存
hunankeda110
·
2013-05-25 19:00
java
多线程
并发
同步锁
JAVA多线程与
并发学习
总结
阅读更多1.计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单位
hunankeda110
·
2013-05-25 19:00
java
多线程
并发
同步锁
Java
并发学习
笔记 [1]
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)
manxisuo
·
2013-04-28 23:00
java
并发
线程
JAVA多线程与
并发学习
总结
转自http://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html 2. JAVA内存模型 目标是定义程序中各个变量的访问规则。(包括实例字段、静态字段和构成数组的元素,不包括局部变量和方法参数) 所有的变量都存储在主内存中(虚拟机内存的一部分)。 每条线程都由自己的工
牛牛向前冲
·
2013-04-14 02:00
java多线程
JAVA多线程与
并发学习
总结
转自:http://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块
Mr__fang
·
2013-03-03 13:00
Java5
并发学习
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过 Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特 性。 一、创建任务 任务就是一个实现了Runnable接口的类。 创建的时候
joerong666
·
2013-01-22 18:00
java
并发学习
之:对条件变量(condition variable)的讨论
From:http://blog.csdn.net/fengge8ylf/article/details/6896380作者:王东1.1什么是条件变量和条件等待?简单的说:条件变量(conditionvariable)是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待某个条件为真,而将自己挂起;另一个线程使的条件成立,并通知等待的线程继续。为了防止竞争,条件变量的使用总是
PunCha
·
2013-01-11 02:41
异步编程(Async)
C++
并发学习
之:Keyed Events(没看懂,要调试下才能明白,伤心!)
From:http://locklessinc.com/articles/keyed_events/KeyedEventsTheprimitivesusedforsynchronizationbetweenthreadsinaLinuxprocessarebasedontheFutexmultiplexingsyscall.Thissyscallallowswait-queuesofsleepin
puncha
·
2013-01-10 00:00
并发学习
之:不使用内核对象同步的并发队列
From: http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms686962(v=vs.85).aspxFrom: http://blog.chinaunix.net/uid-192452-id-3345030.htmlThefollowingexampleusesthe InitializeSListHead functiontoi
puncha
·
2013-01-09 23:00
并发学习
之:等待定时器(Waitable Timer)
From:http://blog.csdn.net/zhangjinqing1234/article/details/7195826通过异步程序调用(APC)实现的定时功能编译:张海粟定时器是一个在特定时间或者规则间隔被激发的内核对象。结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行。本文的例子代码显示了如何实现。使用本定时器时,你需要把常量_WIN32_WINNT定义为0x0
puncha
·
2013-01-08 00:00
并发学习
之:APC (异步过程调用)
一个简单的APC例子,对应于Windows并发编程指南p124。#include"stdafx.h" #include #include VOIDNTAPIApcFunc(ULONG_PTRpValue) { printf("Hello,thisisAPCandtheparametervalueis%d\n",*((DWORD*)pValue)); delete(DWORD*)pValue;
puncha
·
2013-01-07 01:00
并发学习
之:Synchronization进行粗粒度线程同步的例子
一个使用Synchronization进行粗粒度线程同步的例子。(注意,Synchronization特性和ContextBoundObject必须同时使用,否则无效)这个例子很简单,2个Task对象,分别调用兽族农民的WorkWork和GugiGugi方法。GugiGugi内部有着3秒的停顿,用来观察输出结果。运行之后,很明显的可以看到,在某一个线程执行GugiGugi的时候,另一个线程在等待。
puncha
·
2013-01-05 16:00
并发学习
之:乱序执行和内存屏障
From:http://blog.163.com/zhaojie_ding/blog/static/1729728952007925111324379/?suggestedreading 乱序执行和内存屏障2007-10-2523:13:24|分类:编程开发|标签:|字号大中小订阅最近写的一些关于在驱动程序开发中会遇到的关于乱序执行问题的短文,都是些通用的技术,贴上来share。处理器的乱序和并发
puncha
·
2013-01-04 00:00
张孝祥java.concurrent线程
并发学习
笔记 - concurrent简介
java.util.concurrent并发库是JDK1.5新提供的,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用
此号作废123123
·
2012-10-31 20:17
java
多线程
concurrent
张孝祥java.concurrent线程
并发学习
笔记 - concurrent简介
java.util.concurrent并发库是JDK1.5新提供的,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用
m13321169565
·
2012-10-31 20:00
张孝祥java.concurrent线程
并发学习
笔记 - 传统线程回顾
线程的定义:每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。线程的状态:1、new新建 2、Runnable可以运行(就绪) 3、Runn
m13321169565
·
2012-10-31 20:00
JAVA多线程与
并发学习
总结
1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个处理器的运算任务都设计到同一块内存区域时,将可能导致各自的缓存数据不一致的情况,则同步回主内存时需要遵循一些协议。乱序执行优化:为了使得处理器内部的运算单
a416090287
·
2012-10-23 22:00
Java5
并发学习
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Exec
wang4674890
·
2012-09-10 11:00
java
多线程学习笔记二
*@time下午06:15:19 *@authorretacnyue *@
[email protected]
*/publicclassTraditionalThread{/***多线程
并发学习
retacn_yue
·
2012-09-04 11:00
多线程学习笔记二
:15:19 * @author retacn yue * @Email
[email protected]
*/ public class TraditionalThread {/*** 多线程
并发学习
岳振华
·
2012-09-04 11:00
java
多线程
多线程学习笔记二
:15:19 * @author retacn yue * @Email
[email protected]
*/ public class TraditionalThread {/*** 多线程
并发学习
yuezhenhua
·
2012-09-04 11:00
学习笔记
Java 5
并发学习
Java 5
并发学习
在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。
wangdun119
·
2012-06-26 14:00
java
java
并发学习
线程是进程内部的一个控制序列流,因此一个进程内可以有多个线程。 线程最简单的做法是从java.lang.Thread继承,然后覆盖run()方法,实现你所需要的功能。在run()方法返回的地方,线程机制将终止此线程。 start()方法启动线程,然后由线程执行机制调用run()方法。 getName():可以获得线程的名字。
lemonyFei
·
2012-05-27 00:00
java
JOIN
jvm
thread
object
java线程池 相关
Java5
并发学习
http://lavasoft.blog.51cto.com/62575/115112 通过Executor来启动线程比用Thread的start()更好。
spirals
·
2012-04-10 10:00
java基础
OpenGL笔记之windows环境搭建
并发学习
,多线程啊。。。。加油了。。好吧,先搭个环境,参考了http://blog.csdn.net/moiyer/article/details/6940149,多谢!!!
cny901111
·
2012-04-04 02:00
windows
Microsoft
application
System
include
dependencies
Java
并发学习
笔记(17)性能,分离锁
多线程往往比单线程开销要大,这包括加锁释放锁,信号,同步,切换,线程的创建销毁,调度.(1)如何优化性能: 如果重复计算量大的话,使用缓存来保存旧的结果.以便下次计算时使用. 减少阻塞.运行和阻塞会增加上下文切换. 因为锁是串行的这会引起大量的阻塞:所以我们在使用锁的时候要尽量的做到以下几点: i. 减少锁的持有时间(尽量使用synchronized或者显示
joker_zhou
·
2012-03-06 13:00
java
多线程
优化
object
Java
并发学习
笔记(16)守护线程,线程组
守护线程 守护线程是指不是程序的核心线程意思是,如果所有非守护线程停止后核心线程也将终止,核心线程,守护线程一般作为后台线程为其他线程提供服务的. 判断是否为核心线程调用isDaemon()方法判断.设置线程为守护线程使用setDaemon()方法 记住守护线程派生出来的子线程也为守护线程线程组 线程组是一个Java特有的概念,在Java中,线程组是类ThreadGroup
joker_zhou
·
2012-03-06 13:00
java
thread
System
Java
并发学习
笔记(15)信号量(Semaphore) 关卡((2)CyclicBarrier)
信号量(1)计数信号量可以控制同时访问某特定资源的活动数量,或者同时执行某一给定操作的数量.a) 信号量可以实现资源池(线程池)和规定无界容器的边界b) 信号量为1的可以作为特定线程的互斥锁(2)Java使用Semaphore类作为信号量类,acquire可以获取一个或多个量,release可以归还一个或者多个量关卡(1)关卡类似闭锁,但是关卡是需要所有线程到达一个状态后才能一起处理,而不是倒
joker_zhou
·
2012-03-06 13:00
java
c
Semaphore
活动
任务
Exchange
Java
并发学习
笔记(14) 闭锁(CountDownLatch)
闭锁工作就像一道门,在门关闭的时候没有线程能通过,只有在门开时线程才会通过.(1)CountDownLatcha) java中CountDownLatch类就是实现闭锁的工具,在其内有一个计数器(使用构造初始),当使用CountDownLatch的await方法会使当前线程阻塞,countDown会递减内部的计数,当计数为0的时候,所有CountDownLatch阻塞的线程才会一起开始继续执行.
joker_zhou
·
2012-03-06 13:00
java
工作
工具
任务
Java
并发学习
笔记(13)线程之间的协作(Object.wait(),notifu(),notifyAll() Thread.join())
(1)wait(),notify(),notifyAll()a) 前面已经介绍三个方法的用法和作用,wait还有个重要的作用就是在挂起线程的时候释放对象锁.这样可以使其他线程获得释放掉的锁.(2)join()a) 一个线程在另一个线程调用join那么另一个线程需要等待第一个线程完成后才可以继续运行(3)线程之间的通信a) 线程之间的通信可以使用管道流进行交互:i. 使用PipedInput
joker_zhou
·
2012-03-06 13:00
java
JOIN
Java
并发学习
笔记(12)避免活跃度危险(死锁)
首先明确一点Java是无法从死锁状态中恢复的.(1)线程锁死的条件:a) 线程存在互斥b) 至少有一个任务必须持有资源且正在等待获取一个当前被别的任务持有的资源c) 资源不能被任务抢占,任务必须把资源释放当做普通事件.d) 线程之间互相等待(2)实例:a) 一个单线程池,一个任务将另一个任务提交到同一个线程池中.并且等待另一个任务的结果,这就发生死锁.b) A占有锁L,但是需要锁M,B
joker_zhou
·
2012-03-06 12:00
Java
并发学习
笔记(11)阻塞线程
阻塞指的是暂停一个线程的执行以等待某个条件发生.java实现阻塞的方式如下几种:(1)调用Thread.sleep()方法它已毫秒作为单位让该线程睡眠一段时间,到时间后会自行唤起线程.也可以使用TimeUnit.XX.sleep()XX是TimeUnit的常量代表休眠的时间单位具体查看JDK即可.(2)使用Thread的suspend()和resume()方法不过使用suspend方法会引起死锁,
joker_zhou
·
2012-03-06 12:00
上一页
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
其他