Linux内核实战演练网盘下载链接:http://pan.baidu.com/s/1fIYf0密码:341f要是网盘失效了,请加我QQ:3113533060课程内容:第1部分Linux内核中的基础数据结构内核模块;list链表;rb_tree;第2部分Linux内核中的同步方法详解lock锁;mutex;spin_lock;RCU;atomicoperations原..
分类:
系统相关 时间:
2015-01-08 11:30:40
阅读次数:
243
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
当一个系统中存在多个进程同时操作同一个文件时,为了保证数据的正确, 一般会将文件上锁来避免共享文件产生的竞争状态。在linux系统下文件上锁可以使用fcntl函数来实现。
函数fcntl原型如下:
...
分类:
系统相关 时间:
2015-01-07 00:44:01
阅读次数:
324
1.原理:理解的条件线程最常见的用法就是两个线程同时对一个队列进行处理,比如一个线程负责在队列未满的时候插入item,另外一个线程负责在队列非空时取出item,条件线程涉及4个线程相关函数,pthread_mutex_lock、pthread_mutex_unlock、pthread_cond_wait、pthread_cond_signal,其中pthread_mutex_lock负责对线程加锁...
分类:
编程语言 时间:
2015-01-06 17:52:47
阅读次数:
228
【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu,文章仅供学习交流,请勿用于商业用途】
system V信号量操作类似于posix信号量,但system V信号量的操作要复杂得多,posix信号量使用步骤为sem_init(sem_open)-->sem_wait(sem_post) --> sem_close详见上一...
分类:
系统相关 时间:
2015-01-05 20:34:59
阅读次数:
260
线程同步的目的简单来讲就是保证数据的一致性。在Linux中,常用的线程同步方法有互斥量( mutex )、读写锁和条件变量,合理使用这三种方法可以保证数据的一致性,本文将讨论互斥量和条件变量的使用,并给出了相应的代码和注意事项。...
分类:
编程语言 时间:
2015-01-03 21:08:40
阅读次数:
386
var?l?sync.Mutex
var?a?string
func?f()?{
a?=?"hello,?world"
l.Unlock()
}
func?main()?{
l.Lock()
go?f()
l.Lock()
print(a)
} sync 包中实现了两个关于锁的数据类型,sync.Mutex 和 sy...
分类:
编程语言 时间:
2015-01-02 12:23:57
阅读次数:
181
#include
#include
#include
#include
#include
#include
void *thread_function( void *arg );
pthread_mutex_t work_mutex;
#define WORK_SIZE 1024
char work_area[WORK_SIZE];
int time_to_exit = 0;
i...
分类:
编程语言 时间:
2014-12-31 11:20:21
阅读次数:
201
互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。
1. 初始化:
在 Linux下, 线程的互斥量数据类型是pthread_mutex_t. 在使用前, 要对它进行初始化:
对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZER, 或者调用pthread_mutex_init.
对于动态分配的互斥量, 在申请内存(m...
分类:
编程语言 时间:
2014-12-30 22:12:20
阅读次数:
182
看吕大的书,其中对mutex的介绍让人心动,因此我做一次搬运工。mutex与latch区别:mutexlatch没有等待队列,没有持有队列,抢占机制使用队列spin255次,在spin期间无法获得,转入睡眠,自己醒来spin2000次,在spin期间无法获得,转入睡眠,等待唤醒使用引用计数器(referencecou..
分类:
其他好文 时间:
2014-12-30 11:58:04
阅读次数:
182