我偶然发现了Protothreads。它们似乎优于本机线程,因为上下文切换是明确的。
我的问题是。使这个多线程编程再次成为一项简单的任务吗?
(我想是的。但我错过了什么吗?)
答案 0 :(得分:5)
他们不是“优越” - 他们只是不同而且符合另一个目的。 Protothreads是模拟的,因此不是真正的线程。它们不会在多个内核上运行,它们都会阻塞单个系统调用(socket recv()等)。因此,您不应将其视为解决所有多线程问题的“银弹”。这样的线程已经存在了Java,Ruby和Python很长一段时间了。
另一方面,它们非常轻巧,因此它们可以使一些任务变得更快更简单。由于代码和内存占用少,它们适用于小型嵌入式系统。如果您从头开始设计整个系统(包括“小型嵌入式设备上常用的”操作系统“),那么protothreads可以提供一种实现并发的简单方法。
另请阅读green threads。