本文将就自己对内核同步机制的一些简要理解,做出一份自己的总结文档。 Linux内部,为了提供对共享资源的互斥访问,提供了一系列的方法,下面简要的一一介绍。 Technorati 标签: 互斥 Linux 中断屏蔽 使用方法: local_irq_disable() //屏蔽中断 critical s...
分类:
系统相关 时间:
2015-01-27 08:08:45
阅读次数:
209
(一)互斥性
互斥性,即原子性。原子,指最小的物质,具体不可再分性。
CPU运算中,对多线程进行时间片分割执行,一个程序块执行时不可分割,即满足互斥性原子性。
java中保证互斥性的方法:
1.用sychronized锁住程序块,实行互斥
synchronized (lock) {
a++;
}
2.用Atomic对变量操作实行互斥
public final stat...
分类:
编程语言 时间:
2015-01-26 10:13:56
阅读次数:
269
第三章:I/O。 软件必须处理的问题:I/O硬件,I/O设备和I/O控制器的关系。 I/O软件的四个层次:中断例程,设备驱动程序,设备无关I/O软件,以及在用户空间运行的I/O库和假脱机(?)。 死锁概念:发生在一组进程都拥有对某些资源的互斥存取权,并且每个进程还要求仍属于该组中另一个进程...
分类:
其他好文 时间:
2015-01-25 12:18:50
阅读次数:
183
在多线程控制中,可以通过互斥锁,实现多个线程对共享资源的单独访问。在同一时刻,只有一个线程能够掌握互斥锁,只有这个线程能够对共享资源进行访问,其他线程被阻塞,直到互斥锁被释放。
如果,互斥锁上锁期间,有多个线程阻塞,那么所有被阻塞的线程会被设置为可执行状态。第一个执行的线程,取得互斥锁的控制权,上锁。其他线程继续阻塞。
一 创建互斥锁
互斥锁可以...
分类:
系统相关 时间:
2015-01-24 00:30:49
阅读次数:
431
STDMETHODIMP CSoftCheck::CheckUserAccount(BOOL *isAol){long rtVal = 0;HKEY hKey = 0;rtVal = RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\HaHaHa"),...
分类:
其他好文 时间:
2015-01-23 10:59:51
阅读次数:
168
1.什么是RAII 技术?
我们在C++中经常使用new申请了内存空间,但是却也经常忘记delete回收申请的空间,容易造成内存溢出,于是RAII技术就诞生了,来解决这样的问题。RAII(Resource Acquisition Is Initialization)机制是Bjarne Stroustrup首先提出的,是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的...
分类:
编程语言 时间:
2015-01-22 23:23:58
阅读次数:
211
一、前言 在多线程编程中,互斥锁与条件变量恐怕是最常用也是最实用的线程同步原语。 关于条件变量一共也就pthread_cond_init、pthread_cond_destroy、pthread_cond_wait、pthread_cond_timedwait、pthread_cond_sign.....
分类:
其他好文 时间:
2015-01-21 23:46:23
阅读次数:
291
据说大连某211高校的信息学院的李教授非常好这口,他带的每个操作系统本科班,每个学期都必须完成这个程序,不过网上关于这方面的资料甚少,就只有一份C语言版。
然而,那份被历届学生已经抄烂,改实验结果把李教授忽悠了N年的C语言版,所使用的类、所开的线程与进程也不甚合理,把一个本来非常简单的程序搞得十分冗长。明明这个线程并发拷贝程序只涉及到线程的互斥的方面,与线程的同步半点关系,这个线程并发拷贝程序的...
分类:
编程语言 时间:
2015-01-21 16:40:03
阅读次数:
241
在《【Java】线程并发、互斥与同步》(点击打开链接)中利用了操作系统通过操作信号量控制的原始方法,完成了线程的互斥与同步,说句题外话,其实这个信号量的算法,是著名的迪杰斯特拉创造的,也就是数据结构、计算机网络上面最短路径算法、迪杰斯特拉算法、Dijkstra算法的贡献人。其实Java里面根本就不需要自己定义一个信号量来实现临界区,Java对于临界区的实现早已封装好了,而且synchronized...
分类:
编程语言 时间:
2015-01-20 22:23:06
阅读次数:
2185
linux下的同步与互斥 谈到linux的并发,必然涉及到线程之间的同步和互斥,linux主要为我们提供了几种实现线程间同步互斥的机制,本文主要介绍互斥锁,条件变量和信号量。互斥锁和条件变量包含在pthread线程库中,使用时需要包含头文件。而使用信号量时需要包含头文件。1.互斥锁 类型声明:pt....
分类:
系统相关 时间:
2015-01-20 11:43:59
阅读次数:
279