linux--lock

原创 2012年03月26日 17:18:44

/****************lock**************/
#if defined(_WIN32)||defined(_WIN64)
 CRITICAL_SECTION g_Mutex;
#else
 pthread_mutex_t g_Mutex;
#endif


void InitLock()
{
#if defined(_WIN32)||defined(_WIN64)
 InitializeCriticalSection(&g_Mutex);
#else
 pthread_mutex_init(&g_Mutex,NULL);
#endif
}

void UninitLock()
{
#if defined(_WIN32)||defined(_WIN64)
 DeleteCriticalSection(&g_Mutex);
#else
 pthread_mutex_destroy(&g_Mutex);
#endif
}

void Lock()
{
#if defined(_WIN32)||defined(_WIN64)
    EnterCriticalSection(&g_Mutex);
#else
 pthread_mutex_lock(&g_Mutex);
#endif
}

void UnLock()
{
#if defined(_WIN32)||defined(_WIN64)
    LeaveCriticalSection(&g_Mutex);
#else
 pthread_mutex_unlock(&g_Mutex);
#endif
}

相关文章推荐

Linux,rcu_lock

  • 2013年03月19日 12:47
  • 75KB
  • 下载

Linux内核同步机制API函数:宏:spin_lock_init ( )

宏定义:       在内核源码中的位置:linux-2.6.30/include/linux/spinlock.h 宏定义格式:# define spin_lock_init(lock)    ...
  • dyzok88
  • dyzok88
  • 2014年12月22日 17:18
  • 2953

Linux内核同步机制API函数:宏:spin_lock_init ( )

宏定义:       在内核源码中的位置:linux-2.6.30/include/linux/spinlock.h 宏定义格式:# define spin_lock_init(lock)...

Linux 2.6 schedule() 切换进程时没有释放rq->lock却又为何不会导致死锁?

Linux 的 schedule()函数主要完成现场切换任务。而切换进程前,他并没有将runqueue上的锁解开。以尝试判断,我们几乎会认定这终将导致死锁。然而,故事并没有我们相信中的那么单纯……...

linux内核spin_lock分析

今天我们详细了解一下spin_lock在内核中代码实现,我们总共分析四个项目:   1.spinlock_t的定义分析: 首先来看一下spinlock_t的定义: typede...

linux基础编程 多线程中的互斥锁 pthread_mutex_lock

pthread_mutex.h头文件 #ifndef __SEM_UTIL_H__ #define __SEM_UTIL_H__ typedef void* SemHandl_t; SemH...
  • ghostyu
  • ghostyu
  • 2012年07月10日 20:19
  • 4572

LINUX RAC修改配置LOCK_SGA

通过修改lock_sga和pre_page_sga参数可以保证SGA不被换出到虚拟内存,进而可以提高SGA的使用效率。通过这个小文儿给大家展示一下这两个参数的修改过程,不要太乐观,修改过程是存在“小坎...

linux 下实现高性能读写锁(read/write lock)

前一篇文章分析了Windows slim read/write lock的工作原理,
  • yichigo
  • yichigo
  • 2014年07月07日 15:05
  • 2174

Linux内核同步机制之(四):spin lock

copy from: http://www.wowotech.net/kernel_synchronization/spinlock.html/comment-page-2#comments作者:li...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux--lock
举报原因:
原因补充:

(最多只允许输入30个字)