threadpool:一个用C编写的实现工作窃取和工作帮助的fork联接框架线程池

时间:2024-05-26 05:02:24
【文件属性】:

文件名称:threadpool:一个用C编写的实现工作窃取和工作帮助的fork联接框架线程池

文件大小:26KB

文件格式:ZIP

更新时间:2024-05-26 05:02:24

C

线程池 一个fork / join框架线程池,实现了工作窃取和工作帮助。 查看threadpool.c以获取我的代码。 所有其他代码和测试均由讲师编写。 我的线程池结构包含一个全局的期货队列,一个工作线程队列,一个条件变量,用于通知何时准备好执行任务,以及一个锁来控制池中的所有数据。 它还包括一个关闭标志和一个在执行开始时同步所有线程的屏障。 这是为了确保线程首先获得锁,并完成大部分工作,而不是主程序调用future_get。 每个工作人员都有自己的期货队列以及线程ID。 每个Future都存储任务及其数据,一个条件变量以在完成执行时对其进行标记,其状态以及对其包含的池的引用。 工作线程的流程如下:它首先遇到一个while循环,该循环确定它是否应该处于睡眠状态。 如果全局队列为空,其工作队列为空,而所有其他工作队列为空,则工作线程应处于睡眠状态。 这由静态函数sleeping()确定。


【文件预览】:
threadpool-master
----fib_test.c(2KB)
----list.h(6KB)
----mergesort.c(7KB)
----threadpool_test3.c(3KB)
----threadpool.h(2KB)
----threadpool_test.c(2KB)
----nqueens.c(5KB)
----list.c(14KB)
----threadpool_lib.c(5KB)
----threadpool_lib.h(462B)
----psum_test.c(3KB)
----LICENSE(1KB)
----README.md(2KB)
----Makefile(1KB)
----threadpool_test2.c(2KB)
----quicksort.c(6KB)
----threadpool.c(10KB)

网友评论