我正在为一个使用2.6.24.3内核的嵌入式Linux项目开发一个用户空间应用程序。我的应用程序通过创建2个pthread在两个文件节点之间传递数据,每个pthread都处于休眠状态,直到异步IO操作完成,此时它将唤醒并运行完成处理程序。
完成处理程序需要跟踪有多少传输挂起,并维护一些链表,一个线程将添加到这些链表中,而另一个线程将删除这些链表。
// sleep here until events arrive or time out expires
for(;;) {
no_of_events = io_getevents(ctx, 1, num_events, events, &
下面我有一个问题。
Process A Process B
int A = 0; int B = 0;
pthread_mutex_lock(&mutex);
while (condition == FALSE)
pthread_cond_wait(&cond, &mutex);
pthread_mutex_lock(&mutex);
我想知道是否有可能在Linux下使用POSIX线程库实现以下逻辑。
given a mutex
if (I can get the mutex) {
lock the mutex
call fun A
unlcok the mutex
}
else {
call fun B
}
我是Linux下的线程编程新手,所以只需使用伪代码来显示我正在寻找的代码片段的逻辑即可。
我手头有个问题,但所提的答案似乎令人费解。
Que.- Each Process Pi, i=1....9 is coded as follows
repeat
P(mutex)
{Critical section}
V(mutex)
forever
The code for P10 is identical except it uses v(mutex) in place of p(mutex). What is the largest number of proc