繁体   English   中英

使用pthread的工作队列

[英]Workqueues using pthread

在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
}

我需要使用互斥锁来控制对该标志的访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM