【问题标题】:Linux and user level threadsLinux 和用户级线程
【发布时间】:2014-06-17 16:57:12
【问题描述】:

如何在 Linux 中创建用户级线程。我的理解是 Pthread 库创建内核级线程。那么我们如何创建用户级线程。

【问题讨论】:

  • Check this,我认为在用户空间创建线程将在用户级本身创建线程
  • 最好问问自己,为什么需要用户空间(又名“绿色”)线程(如果确实需要的话)?它们不容易使用,需要非常仔细的设计考虑才能在程序中使用。
  • 我不需要创建用户级线程。实际上我是一名培训师,只是询问是否可以这样做。如果可能,那么将使用哪些库调用
  • 你需要一个单独的库,比如这个:state-threads.sourceforge.net

标签: linux


【解决方案1】:

要实现“绿色线程”,需要操纵进程上下文,以便能够在模拟的执行线程之间切换。 Linux 提供了一个方便的 API 来执行此操作:

除了 Linux 特定(并且非常灵活)getcontext() 和朋友之外,C 编程语言规范还要求存在两个奇怪的函数,setjmplongjmp。这些也可用于实现“绿色”线程,尽管功能有限。

当然,使用上述 API 进行编程很困难,因此创建了库来简化“绿色”线程管理任务(一个示例是 State Threads 库)。

【讨论】:

  • 非常感谢您的详细回复
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 2022-08-15
  • 2015-04-08
  • 2017-04-14
  • 1970-01-01
相关资源
最近更新 更多