我必须实现内核级线程,但是在网上搜索时,我发现有三种方法可以在linux中创建内核级线程:
- 《不扩散核武器条约》
- kthread
- linuxThreads
有人写过,linuxThreads现在已经被放弃了。但我无法找到NPTL和kthread的当前支持。此外,我找不到任何可以简单地解释我如何使用其功能的来源。
哪个是当前支持且适合使用内核级线程的库?
还请共享任何资源来安装这些库并使用它们?
你混淆了"内核线程"的两个截然不同的定义。
LinuxThreads 和 NPTL 是用于用户空间进程的 POSIX pthreads 的实现。它们使用内核调度实体到用户空间线程的一对一映射。它们有时被描述为内核线程实现,只是因为它们创建由内核调度的线程。
LinuxThreads不受支持,完全过时。NPTL现在是glibc的一部分,所以你已经拥有了它。没有什么特别的要安装的。您使用这些线程库的方式与使用任何 POSIX 线程库的方式相同,并调用 pthread_create
等函数。
线程运行内核代码。这些库都不相关,因为它们都是用户空间库。看看像 kthread_run
这样的功能。没有魔法,没有秘密。以编写类似内核代码的方式编写内核代码。(需要编写内核代码的知识和经验。不幸的是,这并不简单。
我假设;如果你真的想创建一个内核线程,你已经知道这些事情了。
我认为,您想创建多线程应用程序并尝试查找有关用户级多线程函数的信息。
是的,您创建的这些线程将由内核本身管理。这就是你要找的 :: POSIX 线程