BOOST线程:线程还是进程
BOOST threads: threads or processes?
BOOST线程(大约1.49版本(是真正的线程还是单独的进程?
当我运行对接工具的预编译版本时,它看起来像是使用top的几个进程(每个进程ID不同,CPU使用率为100%(,但当我自己编译它时(使用BOOST 1.60版本(,它们看起来像是一个进程(单个进程ID,CPU使用量为800%(。
如果您担心的是性能,那么它不应该影响性能。Linux在长的时间内以单独进程的形式提供了多线程。它们共享内存就像写时复制一样,但没有复制。由于使用了最近的Linux调用,当Top知道线程应该分组在一起时,它可能会以不同的方式组织它,但"真正的"线程仍然是独立的进程(运行top -H
以查看内核看到的线程(。它们是独立调度的,在内核看来,除了一些重叠的内存页之外,没有其他共同点(初始化内存页后,内核不知道之后会发生什么,它也不在乎(。
所以,是的,旧版本的boost可能使用了单独的"进程"而不是"线程",但这都是语义。没有什么不同。
相关文章:
- 异常属于C++中的线程还是进程
- 将更高的优先级设置为 boost::asio 线程处理进程
- 从不同进程中的另一个线程挂起/恢复线程或进程
- 多线程:线程或进程.h - C++
- BOOST线程:线程还是进程
- 将进程的执行从线程1转移到线程2
- std::async 如果线程是从 DLL 创建的,则会阻止进程退出?
- 优化吞吐量:多线程与多进程
- 多个线程/进程是否可以在不同步的情况下同时从/写入文件的非重叠区域?
- 在 Linux 中从单独的单线程进程生成多线程进程时出现问题
- 为不受支持的平台调整Boost线程/进程
- gdb是如何连接到多线程进程的
- 提振.Asio复合操作在单线程和多线程进程
- gdb如何连接到多线程进程
- 独立的多线程进程同时阻塞
- 在多线程进程中处理信号的示例
- 多线程进程中的信号处理
- 在Linux/ c++中,发送给线程/进程的信号是否使其变为活动状态?
- 如果一个且只有一个线程被停止,可以从多线程进程中跟踪读/写数据
- C++线程/进程标识符