在 Linux 内核中,工作队列对于调度任务的异步执行很有用。在伪代码中,
while(condition) {
read data
add to linked list
schedule_work(&write_data)
}
调度函数 write_data 的异步执行,其中 write_data 执行以下操作:
write_data() {
write data from first node of linked list
link to next node
free first node
}
在用户空间,我想实现同样的事情。但是 pthread 似乎有点不同,让我感到困惑。我想执行以下操作:
while(condition) {
read data
add to linked list
schedule writing of data
}
我希望数据的写入是异步的。如何使用 pthread 实现此目的?
最佳答案
我做了以下适合我的目的:
write_data_thread() {
wait for flag
write data if flag is set
reset flag
sleep
}
while(condition) {
read data
add to linked list
set flag
}
我需要使用互斥锁来控制对标志的访问。
关于linux - 使用 pthread 的工作队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357054/