我刚刚偶然发现了 Protothreads。它们似乎优于 native 线程,因为上下文切换是显式的。
我的问题是。使多线程编程再次成为一件简单的任务吗?
(我想是的。但是我错过了什么吗?)
最佳答案
它们并不“优越”——它们只是不同并且适合另一个目的。原型(prototype)线程是模拟的,因此不是真正的线程。它们不会在多个内核上运行,并且它们都会在单个系统调用(套接字 recv() 等)上阻塞。因此,您不应该将其视为解决所有多线程问题的“ Elixir ”。 Java、Ruby 和 Python 中的此类线程已经存在相当长一段时间了。
另一方面,它们非常轻量级,因此确实使某些任务变得更快、更简单。由于代码和内存占用量较低,它们适用于小型嵌入式系统。如果您从头开始设计整个系统(包括“操作系统”,这是小型嵌入式设备上的惯例),原型(prototype)线程可以提供一种简单的方法来实现并发。
另请阅读green threads .
关于c++ - Native 与 Protothreads,哪个更容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498526/