死锁的概念 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺互斥资源而造成的一种互相等待的现象。死锁产生的原因 -----竞争资源 -----进程推进顺序不合理产生死锁的四个必要条件 -----互斥条件:一个资源每次只能被一个进程(线程)使用。 ----...
分类:
其他好文 时间:
2015-07-13 13:47:28
阅读次数:
124
synchronized关键字方法或代码块的互斥性来完成实际上的一个原子操作。(方法或代码块在被一个线程调用时,其他线程处于等待状态)所有的Java对象都有一个与synchronzied关联的监视器对象(monitor),允许线程在该监视器对象上进行加锁和解锁操作。a、静态方法:Java类对应的Cl...
分类:
编程语言 时间:
2015-07-12 23:11:11
阅读次数:
260
Mutex:互斥(体) 又称同步基元。 当创建一个应用程序类时,将同时创建一个系统范围内的命名的Mutex对象。这个互斥元在整个操作系统中都是可见的。当已经存在一个同名的互斥元时,构造函数将会输出一个布尔值。 主要应用于控制单程序运行。 比如程序代码通过检测这个布尔值来判断指定的程序实例是否启...
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。
1、互斥锁(mutex)
通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。
int pthread_mutex_init(pthread_mutex_t *mutex,const pthre...
分类:
编程语言 时间:
2015-07-11 09:09:12
阅读次数:
151
通过linux下文件互 斥地打开,实现线程/进程互斥的访问资源,以此实现多线程编程。值得注意的是,文件互斥的方式不但适用于多线程编程,还能实现多进程之间的交互。lock.h#include #include #include #include #include void initlock (cons...
分类:
其他好文 时间:
2015-07-10 20:38:50
阅读次数:
110
线程安全问题可以用银行转账来解释 1 /** 2 * 传统的线程互斥技术 3 * @author LiTaiQing 4 */ 5 public class TraditionalThreadSynchronized { 6 7 public static void mai...
分类:
编程语言 时间:
2015-07-10 13:12:57
阅读次数:
146
条件变量与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一...
分类:
其他好文 时间:
2015-07-10 13:08:31
阅读次数:
92
NSLock/NSRecursiveLock/NSConditionLock/@synchronizedhttp://blog.sina.com.cn/s/blog_8c87ba3b0101ok8y.html使用NSLock类在Cocoa程序中NSLock中实现了一个简单的互斥锁。所有锁(包括NSL...
分类:
其他好文 时间:
2015-07-09 19:26:59
阅读次数:
155
简介更一般性的问题会问:“点数1~6的出现次数分别为(x1,x2,x3,x4,x5,x6)时的概率是多少?其中sum(x1~x6)= n”。这就是一个多项式分布。定义把二项分布推广至多个(大于2)互斥事件的发生次数,就得到了多项分布。二项分布的典型例子是扔硬币,硬币正面朝上概率为p, 重复扔n次硬币...
分类:
其他好文 时间:
2015-07-09 17:38:40
阅读次数:
129
数据库死锁及解决死锁问题deadlocks(死锁)所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程.由于资源占用是互斥的,当某个进程提出申请资源后,...
分类:
数据库 时间:
2015-07-09 12:41:27
阅读次数:
173