如何用kthread实现线程互斥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用kthread实现线程互斥?相关的知识,希望对你有一定的参考价值。

我知道我们可以使用pthread_mutex_initpthread_mutex_lock来实现线程互斥。但是如何在kthread的内核模块中实现它呢?

答案

您不能使用pthread_mutex_*函数,因为这些是仅用户空间的调用。在内核中使用linux/mutex.h提供的互斥量:

struct mutex my_mutex; /* shared between the threads */

mutex_init(&my_mutex); /* called only ONCE */

/* inside a thread */
mutex_lock(&my_mutex);
/* do the work with the data you're protecting */
mutex_unlock(&my_mutex);

以上是关于如何用kthread实现线程互斥?的主要内容,如果未能解决你的问题,请参考以下文章

同步互斥的实现

在Linux内核中,创建实时kthread的以下方法是不是正确?

如何用python实现异步io

LockSupport.java 中的 FIFO 互斥代码片段

WD-线程KTHREAD结构(WRK)

ReentrantReadWriteLock场景应用