代码之家  ›  专栏  ›  技术社区  ›  Flinkman

原生线程和原生线程,什么更容易?

  •  2
  • Flinkman  · 技术社区  · 15 年前

    我只是偶然发现了原丝。它们似乎优于本机线程,因为上下文切换是显式的。

    我的问题是。使这个多线程编程再次成为一项简单的任务?

    (我想是这样。但是我错过了什么吗?)

    1 回复  |  直到 15 年前
        1
  •  5
  •   Eli Bendersky    15 年前

    他们不是“优秀的”—他们只是不同的,适合另一个目的。原型线程是模拟的,因此不是真正的线程。它们不会在多个内核上运行,它们都会在单个系统调用(socket recv()等)上阻塞。因此,您不应该将其视为解决所有多线程问题的“银弹”。这样的线程在Java、露比和Python中已经存在了相当长的一段时间。

    另一方面,它们非常轻,所以它们可以使一些任务更快、更简单。它们适用于小型嵌入式系统,因为代码和内存占用量较低。如果您从头开始设计整个系统(包括一个“OS”,这是小型嵌入式设备上的惯例),那么Protothreads可以提供一种实现并发性的简单方法。

    也读 green threads .