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