[pthread] 同步机制(4) ---- barrier (REALTIME)
2010-01-07 01:26:13
查看原文
barrier (栅栏),就是等待 N 个线程都到达了某一阶段后,同时唤醒。N 可以由 pthread_barrier_init 设置。被唤醒的所有线程中,有一个 pthread_barrier_wait 返回值为 PTHREAD_BARRIER_SERIAL_THREAD,其它为 0。
barrier...
[pthread] 同步机制(3) ---- cond
2010-01-07 01:28:18
查看原文
cond, condition (条件量),某个线程拿到 mutex,但发现某些条件没达到(比如队列中无任务),则需要 block,直到条件达到位置,此时 cond 就有作用了。
pthread_signal, 只唤醒所有等待 cond 线程中的一个。
pthread_b...
[pthread] 同步机制(2) ---- rwlock
2010-01-06 12:21:36
查看原文
rwlock, read-write lock,就是常说的读写锁。
pthread_rwlock_rdlock / tryrdlock,拿 read lock。对于同一个 rwlock,多个线程可以同时拿到 read lock。
pthread_rwlock_wrlock / trywrlock,拿 write lock。对于同一个 ...
过去的2009与未来的2010
2010-01-03 02:33:27
查看原文
似乎从来没有认真规划过自己学习的方向,除了满足工作上的需要,自己就是依兴趣而行,对啥感兴趣,则学之一二,浅尝则止,几年下来,没有特别深入的一个领域,叹。新年来临,也好好总结过去,期许新的一年吧。
过去的2009...
[AppEngine] app engine & wsgi & django 1.1
2009-12-31 00:14:41
查看原文
AppEngine Homepage
de.google.com/appengine/">de.google.com/appengine/">de.google.com/appengine/" target="_blank">http://code.google.com/appengine/
My App List
https://appengine.google.com/
AppEngi...
[pthread] 同步机制(1) -- mutex & mutex attr
2010-01-04 01:40:47
查看原文
哇,写了好几篇 pthread 的文字,终于讲到同步机制了。这个主题完成,pthread 的所有 API 就讲解完成啦。:-)
mutex 简单使用
mutex(互斥量) 的概念很简单,就是多个线程竞争一个锁。获得锁的线程 pthread_mutex_lock 会...
[pthread] 关于错误处理
2009-12-30 01:02:58
查看原文
今天认真看了下 pthread mutex 的 man page 才发现此问题。对于一般的 *nix API,如果成功返回0 失败返回-1 并设置 errno。而 pthread 的这堆 API 是,如果成功返回 0 否则返回 err_code,而 err_code (EAGAIN, EINVAL等等) 一...
[pthread] thread cancel
2009-12-29 13:26:20
查看原文
线程A中调用 pthread_cancel(pid_b) 可以让线程pid_b尝试退出。而 pid_b 何时会真正退出,则取决于它的 cancel state & type。函数 pthread_setcancelstate, pthread_setcanceltype 可以用于设置此 state & type,注意,这两个...
[pthread] thread-specific data
2009-12-29 12:46:36
查看原文
想使用 thread-specific data,首先要通过 pthread_key_create() 拿到一个 key。之后每个线程都可以使用此 key,但每个线程各自设置自己的 specific data (pthread_setspecific / getspecific),互不影响。
用 pthrad_key...
[pthread] thread concurrency
2009-12-29 11:31:33
查看原文
我们可以通过 pthread_getconcurrency / setconcurrency 来设置进程的“并发度”。我没有细究这个“并发度”用于啥情况,从 FreeBSD 代码看来,应该是 M:N thread model (libpthread, libkse) 的遗产,1:1 thread model (libth...