gpt4 book ai didi

multithreading - 我可以假设计划在串行队列上运行的 block 将全部在同一线程上运行吗?

转载 作者:行者123 更新时间:2023-12-03 17:36:20 24 4
gpt4 key购买 nike

我正在为 Mac OS 10.6 构建一个将使用 OpenGL 的应用程序。我想将渲染转移到辅助调度队列(而不是主线程)。

据我了解,我需要使用线程本地 OpenGL 上下文来完成图形工作。我的计划是在第一个 block 上获取对它的引用,然后一遍又一遍地重用同一实例。

但是,调度队列和线程并不相同,Xcode 4 的调试器显示一个队列可以使用多个线程。因此,我不确定我所做的是否安全(尽管我相信只有并行队列才能使用多个线程)。

是否可以保证发送到串行队列的所有 block 都发送到同一线程?我应该获取当前的 OpenGL 上下文并将其分配给每帧的 NSOpenGLView 吗?

最佳答案

Queues are not bound to any specific thread of execution

无法保证发送到串行队列的所有 block 都发送到同一线程。您需要使用主队列进行渲染,或者使用 NSThread 或 pthread 作为主队列在具有 GL 上下文的线程上实现排队 block 。

关于multithreading - 我可以假设计划在串行队列上运行的 block 将全部在同一线程上运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446413/

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