c++ - Native 与 Protothreads,哪个更容易?

标签 c++ c multithreading

我刚刚偶然发现了 Protothreads。它们似乎优于 native 线程,因为上下文切换是显式的。

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

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

最佳答案

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

另一方面,它们非常轻量级,因此确实使某些任务变得更快、更简单。由于代码和内存占用量较低,它们适用于小型嵌入式系统。如果您从头开始设计整个系统(包括“操作系统”,这是小型嵌入式设备上的惯例),原型(prototype)线程可以提供一种简单的方法来实现并发。

另请阅读green threads .

关于c++ - Native 与 Protothreads,哪个更容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498526/

相关文章:

c - 递归反向链表 - 不同的函数签名

objective-c - 如何防止访问可相互访问的变量?

Python thread.Timer() 在我的进程中不起作用

c++ - 这是溢出吗?

c++ - 微软编译器下的C++中vbi代表什么

c++ - OpenMP - 并行化嵌套循环

使用 std 安全指针相互链接的 c++ 类 (c++)

c - 使用 argp.h 解析为整数

java - BlackBerry 线程模型

c - Linux pthread : What does NP mean in PTHREAD_RWLOCK_PREFER_READER_NP?