Linux
ba_jie
这个作者很懒,什么都没留下…
展开
-
POSIX互斥锁
创建与销毁静态初始化 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;动态初始化int pthread_mutex_init (pthread_mutex_t * mutex, const pt转载 2011-08-31 20:10:54 · 4557 阅读 · 0 评论 -
POSIX线程的创建和取消
先看一个例子:pthread1.c#if defined(WIN32) #include // void Sleep(DWORD ms) #define SLEEP(ms) Sleep(ms)#else if defined(LINUX) #includ转载 2011-08-31 09:23:28 · 857 阅读 · 0 评论 -
POSIX的只执行一次的pthread_once
#ifdef WIN32 #include #define SLEEP(ms) Sleep(ms)#else if defined(LINUX) #include #define SLEEP(ms) sleep(ms)#endif#include #i原创 2011-09-13 15:39:53 · 1634 阅读 · 0 评论 -
POSIX线程的私有数据
多线程环境下,数据空间由所有线程共享。所以,一般意义上的全局变量也为所有的线程所共享。有时需要提供线程私有的全局变量:- 可以跨多个函数访问(全局);- 仅在某个线程有效(私有)。比如程序可能需要每个线程都维护一个链表,维护手段相同,链表内的数据却不同。转载 2011-08-31 19:36:00 · 948 阅读 · 0 评论 -
POSIX线程清理函数
#include #include #include // Sleeppthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t cond = PTHREAD_COND_INITIALIZER转载 2011-09-16 17:45:51 · 1634 阅读 · 0 评论 -
POSIX的pthread_join
joinjoin是三种同步线程的方式之一。另外两种分别是互斥锁(mutex)和条件变量(condition variable)。调用pthread_join()将阻塞自己,一直到要等待加入的线程运行结束。可以用pthread_join()获取线程的返回翻译 2011-09-16 20:04:23 · 9663 阅读 · 0 评论 -
POSIX线程的栈管理
POSIX标准没有为线程的栈规定默认的大小,所以该值是根据实现而变化的;栈的最大容量也是由实现去定义。一旦超过栈的容量限制,程序会崩溃,或者数据损坏。可靠而又保证移植性的作法,是显式地设置栈的大小,不使用默认值。有些实现要求线程的栈放在内存的特殊的地方,此翻译 2011-09-17 19:06:41 · 1276 阅读 · 0 评论 -
利用POSIX互斥锁和条件变量实现的信号量
这是一篇从http://man.yolinux.com/cgi-bin/man2html?cgi_command=pthread_mutexattr_init转载过来的文章。利用POSIX互斥锁、条件变量,和内存映射文件,实现的信号量机制,用于进程间的同步。/* se翻译 2011-09-20 10:10:59 · 1268 阅读 · 0 评论 -
使用POSIX线程解决“生产者/消费者”问题
/** File : pc.cpp** Title : Demo Producer/Consumer.** Short : A solution to the producer consumer problem using pthreads.* Thi转载 2011-09-24 15:53:32 · 1762 阅读 · 0 评论