问题标签 [libdispatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Grand Central Dispatch (`libdispatch`) 能否在 Windows 上可用?
我正在研究多线程,GCD 似乎是一个比使用手动编写解决方案更好的选择pthread.h
and pthreads-win32
。然而,尽管它看起来libdispatch
要么正在开发,要么很快将要开发,大多数新的 POSIX 兼容系统......我不得不问,Windows 呢?libdispatch
移植到 Windows的机会有多大?阻止这种情况发生的障碍是什么?
如果归根结底,我需要做什么来进行搬运?
编辑:一些我已经知道的事情,开始讨论:
- 我们需要一个可以在 Windows 上编译的块兼容编译器,不是吗?PLBlocks 会处理这个问题吗?
- 我们可以使用 LLVM块运行时吗?
- 为了可移植性,我们不能用 APR 调用替换
pthread.h
用户空间中的所有依赖项吗?libdispatch
或者,或者,使用pthreads-win32
我想...</li>
编辑1:我听说这是完全不可能的,永远,因为libdispatch
依赖(以某种方式)kqueue
在Windows上无法使用......有人知道这是否属实吗?
macos - Grand Central Dispatch 应该创建多少线程?
我知道 GCD 只会根据需要创建尽可能多的线程以充分利用 CPU。在dispatch_async
用于启动大约 30 个后台任务的代码中,我看到 Activity Monitor 中的线程数增加了大约 30 个。我没想到会这样,因为它只是一台双核 PC。
我确定我误解了一些东西。有人可以告诉我发生了什么吗?
linux - 块和 libdispatch 在 Linux 上可用吗?
我很想尝试大型中央调度,但我需要开发的只是一个 Ubuntu 工作站。libdispatch 和 c/obj-c 等的块扩展是否在 Linux 上可用?如果是这样,我该如何获得它们?
grand-central-dispatch - dispatch_semaphore_wait 不是先进先出吗?
的文档dispatch_semaphore_wait
说它“以先进先出的顺序等待信号”。但在这个例子中似乎没有——有人可以解释一下吗?
例子:
预期输出:
实际输出(一个例子):
编辑:如果不是串行队列,而是将 q1 和 q2 设置为全局队列,则实际输出:
(有时它工作得很好,但有时它就像这样很奇怪。)
macos - 如何将 GLUT 与 libdispatch 一起使用?
GLUT 和 libdispatch 都有自己的事件处理循环,它们分别使用永不返回的函数调用: glutMainLoop();
和dispatch_main();
。
我试过了:
...并且窗口显示,但在初始调用指定的函数后不响应任何事件或重绘glutDisplayFunc()
。
我怎样才能让 GLUT 和 libdispatch 一起玩得很好?
macos - 如何使用 GLFW 轮询 libdispatch 块中的事件?
跟进如何将 GLUT 与 libdispatch 一起使用的答案?, 我现在改用 GLFW —</p>
以下代码设置了一个窗口,设置了一个计时器来轮询事件,并且随着时间的推移,将渲染更新排入队列:
动画按预期更新,但窗口框架不绘制,窗口不响应事件。
ios - 如何处理 dispatch_queue_t dispatch_get_local_queue dispatch_queue_create EXC BAD ACCESS?
我有以下代码
在 dispatch_queue_set_specific 行收到信号 EXC BAD ACCESS 后。如何处理?并且在 iphone 5.0 模拟器上一切正常。但与 iphone 4.3 模拟器和 ipad 与 ios 4.2 崩溃。它是 BlackRaccoon 项目的一部分。在我之后
python - 在 Sage/Python 中分叉后的 SIGILL
我正在用Sage做一些计算。我在玩fork
。我有一个非常简单的测试用例,基本上是这样的:
(查看下面的_fork_test_func()
一些矩阵计算。)
我得到:
有了这个(不完整的)回溯:
之后有什么特别的事情我需要做的fork
吗?我查看了fork
Sage 的装饰器,它看起来基本上是一样的。
崩溃也发生在fork
Sage 本身的装饰器上。另一个测试用例:
更简单的测试用例:
导致稍微不同的崩溃:
使用回溯:
同样的情况也发生在这方面:
-- 但前提是您之前使用过其他一些矩阵计算。
此测试用例也适用于新的 Sage 会话:
我已经下载了 MacOSX 64bit 的 Sage 5.8 的二进制文件。
(请注意,我也在 ask.sagemath.org 上问过。)
c - Ubuntu libdispatch
我正在尝试将使用 GCD(Grand Central Dispatch)的程序从 OSX 移植到 Ubuntu 11.10。我安装了 libdispatch 但我不断收到以下错误:
奇怪的是,dispatch_main() 是在我包含的头文件中声明的,我调用该头文件中声明的其他函数,编译器会识别它们。它只是 dispatch_main() 它看不到,如果我调用 dispatch_main(2) 它说参数太多,所以我知道编译器可以看到标题。
我尝试将编译和链接步骤(clang -c ...)分开,因为它之前适用于未定义的引用错误,但它似乎在这里没有做任何事情......
有人有什么建议吗?我对这个很困惑...
ios - 大中央调度无块
是否可以在没有块的情况下使用 GCD?正如 mikeash 在他的帖子中所说,有没有办法使用 _f 变体来使用 GCD 。我四处寻找,双方都没有证据。是可能还是不可能。
如果可行,请举个例子。
/塞尔文