多线程与锁
Mr.QingBin
邮箱:280553230qq.com
展开
-
锁与多版本并发控制
多线程处理数据的时候会不可避免的对同一资源进行CRUD操作,以前只知道可以用锁来实现线程之间的互斥,但是没有考虑这种情况下的效率问题。今天看了篇文章觉得不错拿来与大家分享下。 问题 最近项目中遇到了一个分布式系统的并发控制问题。该问题可以抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 … Ln组成;D本质上是一个key-value存储,它对外提供基于HTTP协转载 2012-04-10 16:51:35 · 681 阅读 · 0 评论 -
c++中的线程
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。转载 2012-04-16 16:23:03 · 590 阅读 · 0 评论 -
ThreadLocal与synchronized
昨天上Java版块逛了一圈,一个2万5千人浏览的帖子引起了偶滴注意 ThreadLocal与synchronized ,9页以上的回复,足见大家对这个问题的兴趣。 老实说,从看到这个帖子的题目开始,就觉得帖子的作者估计是在概念上有所混淆了,于是乎想写个咚咚,同大家分享一下自己的心得。 帖子上,讨论的人很多,高手不乏,各抒己见,但不知新手们看明白没有,因此,这里偶转载 2012-07-06 13:47:38 · 772 阅读 · 0 评论 -
java wait()和sleep()方法之经验谈
sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。 wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify 方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。转载 2012-08-16 09:40:31 · 14297 阅读 · 0 评论 -
java 多线程基础--各种状态及状态之间的转换
线程转换图 线程在它的生命周期中会处于各种不同的状态: 新建、等待、就绪、运行、阻塞、死亡。 1 新建 用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。 2等待 当线程在new之后,并且在调用start方法前,线程处于等待状态。 --2012-12-21 3 就绪 当一个线程对象创建后,其他线程调用它的start()方法,该线程就进转载 2012-07-09 16:15:18 · 8410 阅读 · 0 评论 -
t.interrupt(),t.isInterrupted(),Thread.interrupted()
原文地址见:http://www.blogjava.net/fhtdy2004/archive/2009/08/22/292181.html http://www.blogjava.net/fhtdy2004/archive/2009/06/08/280728.html中有关interrupt()的解释已经很清楚了 interrupt public void interrup转载 2013-02-21 16:16:29 · 564 阅读 · 0 评论 -
java 多线程基础--多线程及并发
当多任务同时运行的时候,我们称之为并发。 在cpu单核的情况下,多任务轮流获得时间片,在多核的情况下多任务可同时运行。 这里的任务我们可以简单理解为线程。 我们可以通过new Thread()来创建java的线程。 关于主线程 当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程。 也就是在new Thread()之前,所有的代码都运行在主线程里。 主线程的原创 2012-12-21 11:04:55 · 641 阅读 · 0 评论 -
可重入锁 ReentrantLock 源码解读(1)简介
ReentrantLock的构造函数: public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean fair) { sync = (fair)? new FairSync() : new NonfairSync();原创 2014-03-21 21:18:26 · 2664 阅读 · 1 评论