C++多线程编程要用到哪些库?如何编译这些库?
展开全部
千万别以为现在的C++没有原生的多线程库
OpenMP 是一个多线程库,不过他还需要编译器的支持,好在现在绝大多数都已经支持(这个可能是目前最流行的原生多线程库了)
C++的标准头process.h(太老的没有,2002年后的基本都有)中有操作进程和执行环境的函数,能实现简单的进程级或线程级并行操作。
使用起来非常非常方便。windows平台的C语言编译工具也都有这个头,unix平台上的unistd.h跟这个头很相似,函数名与用法也基本一样。
还有一些其他的第三方多线程库,你可以网上搜搜,但是注意是否跨平台等问题
如果你要使用操作系统相关的多线程API,那么也就没什么选择余地,windows上只能用windows的多线程API (参考MSDN) unix同理
OpenMP的优点是跨平台,功能丰富强大(例如提供了各种锁、信号等),代码改动也比较小,使用起来也非常方便快捷。缺点是没有像直接用系统API时透明感,毕竟使用系统API时,程序员完全控制了逻辑,非常直观,当然这也带来了错误风险和代码复杂度
OpenMP 是一个多线程库,不过他还需要编译器的支持,好在现在绝大多数都已经支持(这个可能是目前最流行的原生多线程库了)
C++的标准头process.h(太老的没有,2002年后的基本都有)中有操作进程和执行环境的函数,能实现简单的进程级或线程级并行操作。
使用起来非常非常方便。windows平台的C语言编译工具也都有这个头,unix平台上的unistd.h跟这个头很相似,函数名与用法也基本一样。
还有一些其他的第三方多线程库,你可以网上搜搜,但是注意是否跨平台等问题
如果你要使用操作系统相关的多线程API,那么也就没什么选择余地,windows上只能用windows的多线程API (参考MSDN) unix同理
OpenMP的优点是跨平台,功能丰富强大(例如提供了各种锁、信号等),代码改动也比较小,使用起来也非常方便快捷。缺点是没有像直接用系统API时透明感,毕竟使用系统API时,程序员完全控制了逻辑,非常直观,当然这也带来了错误风险和代码复杂度
展开全部
c++和c本身都没有标准多线程实现。
但是各个厂家都扩展了c,c++,例如微软就有自己的多线程函数库。
如果没有标准库的话,为什么不把这样重要的内容加入到标准中来呢?
c的发明很早,后续开发c编译器的厂家只能发展自己的扩展库,你不能说你自己的扩展库就是一个标准,因为那是和版权问题相关的。
但是各个厂家都扩展了c,c++,例如微软就有自己的多线程函数库。
如果没有标准库的话,为什么不把这样重要的内容加入到标准中来呢?
c的发明很早,后续开发c编译器的厂家只能发展自己的扩展库,你不能说你自己的扩展库就是一个标准,因为那是和版权问题相关的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++中写多线程程序还是用CreateThread函数吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |