gpt4 book ai didi

multithreading - 与GCD相比,pthread是否提供任何优势?

转载 作者:行者123 更新时间:2023-12-03 12:33:54 26 4
gpt4 key购买 nike

最近学习了Grand Central Dispatch,我发现多线程代码非常直观(使用GCD)。我喜欢不需要锁的事实(并且它在内部使用无锁数据结构),而且API非常简单。

现在,我开始学习pthread,我不禁对复杂性有点不知所措。线程连接,互斥锁,条件变量-所有这些在GCD中都是不必要的,但在pthread中有很多API调用。

与GCD相比,pthread是否提供任何优势?效率更高吗?在正常情况下,pthread可以完成GCD无法完成的工作(内核级软件除外)吗?

在跨平台兼容性方面,我不太担心。毕竟,libdispatch是开放源代码,Apple已将其关闭更改更改为GCC的补丁程序,clang支持关闭,并且已经(例如FreeBSD),我们开始看到一些非Apple的GCD实现。我对使用API​​最为感兴趣(具体示例非常棒!)。

最佳答案

您正在体验的那种压倒性的感觉..这就是发明GCD的原因。

在最基本的级别上,有线程,pthreads是用于线程的POSIX API,因此您可以在任何兼容的OS中编写代码,并期望它能正常工作。 GCD建立在线程之上(尽管我不确定它们是否实际使用pthreads作为API)。我相信GCD仅能在OS X和iOS上使用-简而言之,这是它的主要缺点。

请注意,大量使用线程并需要高性能的项目会实现自己的线程池版本。 GCD可让您避免在第十七次(重新)发明轮子。

关于multithreading - 与GCD相比,pthread是否提供任何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com