当前位置: 技术问答>linux和unix
内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数?
来源: 互联网 发布时间:2015-10-10
本文导语: 内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数? 在内核中,对一个链表的指针赋值是不是原子操作?对一个整数做加减操作是不是可以理解为原子操作? ...
内核中的timer是不是可以理解为多线程,我想对一段代码加锁,如何实现,有没有可用的内核函数?
在内核中,对一个链表的指针赋值是不是原子操作?对一个整数做加减操作是不是可以理解为原子操作?
在内核中,对一个链表的指针赋值是不是原子操作?对一个整数做加减操作是不是可以理解为原子操作?
|
对一个链表的指针赋值,对一个整数做加减,肯定不能保证是原子的了
加锁可以用互斥
pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;// 他是全局变量
pthread_mutex_lock (&g_mutex);
...
pthread_mutex_unlock (&g_mutex);
timer 不是多线程, 或者 好象提到过,我记不清了
加锁可以用互斥
pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;// 他是全局变量
pthread_mutex_lock (&g_mutex);
...
pthread_mutex_unlock (&g_mutex);
timer 不是多线程, 或者 好象提到过,我记不清了
|
timer好像是在时钟中断之后执行的,属于在中断上下文中执行的代码段,所以不需要加锁,因为时钟中断本来就是异步,中断返回之后就会搜索timer链表