有人能指出我如何为生产者消费者场景实现内核线程的正确方向吗?此外,如果有人可以告诉我如何在本例的实现中使用内核的双向链表(有界缓冲区)。
到目前为止,我已经了解了如何初始化和使用pthreads以及用于同步程序的互斥体,但我似乎无法弄清楚如何使用内核线程来实现它。
前卫。我用的是C
答案 0 :(得分:1)
对于概念部分,您可以阅读Robert Love的Linux Kernel Development。这本书通常说你可以使用像
这样的功能struct task_struct * kthread_create (...);
struct task_struct * kthread_run (...);
struct task_struct * kthread_stop (...);
管理线程。线程实际上是内核中的轻量级进程。因此,如果您还没有这样做,那么您还需要在流程上做好功课。
对于消费者 - 生产者问题,这里有一个例子using pthread。
希望这会有所帮助。