繁体   English   中英

使用pthread的工作队列

Workqueues using pthread

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在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实现此目的?

1 个回复

我做了以下适合自己目的的事情:

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
}

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

2 使用pthread并行编程

我刚刚开始学习使用pthreads并行编程。 因此,出于学习目的,我尝试并行计算两个整数数组的总和。 我已经声明了带有三个数组变量a , b和c struct construct 。 我想加a , b并将结果存储在c 。 在这里,到目前为止,我还没有在函数pthread_creat ...

3 使用pthread进行线程化

假设我有5个线程的数组: 我对这里的mutex_lock感到困惑。 我的问题是: 如何让工作人员知道要锁定哪个互斥锁? 当我通过Mutex [i]访问互斥锁时,由于子线程可能也在访问互斥锁数组,我是否需要另一个锁? 谢谢。 ...

2010-11-04 05:54:08 5 407   c++
4 使用互斥锁进行Pthread同步

关于Pthread我遇到了一个棘手的问题我无法理解。 我使用互斥来同步子线程和主线程。 但是当我在主线程中锁定subFinished [i]时,它无法将其锁定,并且卡在那里。 它有时进展顺利,特别是当我在代码中插入一些std输出时。 但大多数情况下,当试图锁定互斥锁subFinished ...

5 使用 pthread 的分段错误

我正在创建一个打开.rgba文件并旋转它的简单程序。 使用gcc code.c -ox -lm -lpthread编译,运行./x img.rgba 90后出现“分段错误”。 用 gdb 调试,崩溃发生在pthread_create() ,但我不知道为什么。 删除pthread_join() ,段错 ...

6 在C中使用Pthread库

我有以下代码: 在使用者函数中添加p(&full)之前,此代码可以正常工作,每次都随机从两个函数中选择一个。 但是在consumer()函数中添加p(&full)之后,每次执行producer()函数时。 我不明白原因。 有人可以帮助我,并建议解决此问题的方法吗 ...

8 使用pthread_create

我尝试使用pthread_create时遇到错误。 我理解我使用argsRight-> thread_id / argsLeft-> thread_id和NULL不正确,但我不确定如何引用线程id。 它需要一个指针,但似乎我试过的各种方式(&,*),GCC编译器都不会接受。 ...

9 在PHP中使用pthread进行Multiupload

我一直在尝试在php中实现多multi-threading ,以使用pthreads php实现多上传。 根据我对multi-threading理解,这就是我设想的工作方式。 我要上传一个文件,该文件将在后台开始上传; 即使文件未完成上传,也会创建另一个instance(threa ...

10 使用互斥锁进行pthread同步

我试图创建2个线程并调用相同的函数,该函数从for循环中增加计数器“ count”。 但是每次我运行此代码时,计数器的值都不同。 当它们增加全局静态变量“ count”但值仍然不同时,我尝试使用互斥锁在线程之间进行同步。 如果我不睡在线程之间,则输出永远不会是20000。 在J ...

暂无
暂无

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

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