问题标签 [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.

0 投票
5 回答
5296 浏览

windows - Grand Central Dispatch (`libdispatch`) 能否在 Windows 上可用?

我正在研究多线程,GCD 似乎是一个使用手动编写解决方案更好的选择pthread.hand pthreads-win32。然而,尽管它看起来libdispatch要么正在开发,要么很快将要开发,大多数新的 POSIX 兼容系统......我不得不问,Windows 呢?libdispatch移植到 Windows的机会有多大?阻止这种情况发生的障碍是什么?

如果归根结底,需要做什么来进行搬运?

编辑:一些我已经知道的事情,开始讨论:

  • 我们需要一个可以在 Windows 上编译的块兼容编译器,不是吗?PLBlocks 会处理这个问题吗?
  • 我们可以使用 LLVM块运行时吗?
  • 为了可移植性,我们不能用 APR 调用替换pthread.h用户空间中的所有依赖项吗?libdispatch或者,或者,使用pthreads-win32我想...</li>

编辑1:我听说这是完全不可能的,永远,因为libdispatch依赖(以某种方式)kqueue在Windows上无法使用......有人知道这是否属实吗?

0 投票
1 回答
1340 浏览

macos - Grand Central Dispatch 应该创建多少线程?

我知道 GCD 只会根据需要创建尽可能多的线程以充分利用 CPU。在dispatch_async用于启动大约 30 个后台任务的代码中,我看到 Activity Monitor 中的线程数增加了大约 30 个。我没想到会这样,因为它只是一台双核 PC。

我确定我误解了一些东西。有人可以告诉我发生了什么吗?

0 投票
4 回答
7243 浏览

linux - 块和 libdispatch 在 Linux 上可用吗?

我很想尝试大型中央调度,但我需要开发的只是一个 Ubuntu 工作站。libdispatch 和 c/obj-c 等的块扩展是否在 Linux 上可用?如果是这样,我该如何获得它们?

0 投票
1 回答
2812 浏览

grand-central-dispatch - dispatch_semaphore_wait 不是先进先出吗?

文档dispatch_semaphore_wait说它“以先进先出的顺序等待信号”。但在这个例子中似乎没有——有人可以解释一下吗?

例子:

预期输出:

实际输出(一个例子):

编辑:如果不是串行队列,而是将 q1 和 q2 设置为全局队列,则实际输出:

(有时它工作得很好,但有时它就像这样很奇怪。)

0 投票
1 回答
146 浏览

macos - 如何将 GLUT 与 libdispatch 一起使用?

GLUT 和 libdispatch 都有自己的事件处理循环,它们分别使用永不返回的函数调用: glutMainLoop();dispatch_main();

我试过了:

...并且窗口显示,但在初始调用指定的函数后不响应任何事件或重绘glutDisplayFunc()

我怎样才能让 GLUT 和 libdispatch 一起玩得很好?

0 投票
1 回答
878 浏览

macos - 如何使用 GLFW 轮询 libdispatch 块中的事件?

跟进如何将 GLUT 与 libdispatch 一起使用的答案?, 我现在改用 GLFW —</p>

以下代码设置了一个窗口,设置了一个计时器来轮询事件,并且随着时间的推移,将渲染更新排入队列:

动画按预期更新,但窗口框架不绘制,窗口不响应事件。

0 投票
1 回答
709 浏览

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 项目的一部分。在我之后

0 投票
1 回答
763 浏览

python - 在 Sage/Python 中分叉后的 SIGILL

我正在用Sage做一些计算。我在玩fork。我有一个非常简单的测试用例,基本上是这样的:

(查看下面的_fork_test_func()一些矩阵计算。)

我得到:

有了这个(不完整的)回溯:

之后有什么特别的事情我需要做的fork吗?我查看了forkSage 的装饰器,它看起来基本上是一样的。

崩溃也发生在forkSage 本身的装饰器上。另一个测试用例:


更简单的测试用例:

导致稍微不同的崩溃:

使用回溯:

同样的情况也发生在这方面:

-- 但前提是您之前使用过其他一些矩阵计算。


此测试用例也适用于新的 Sage 会话:


我已经下载了 MacOSX 64bit 的 Sage 5.8 的二进制文件。

(请注意,我也在 ask.sagemath.org 上问。)

0 投票
1 回答
634 浏览

c - Ubuntu libdispatch

我正在尝试将使用 GCD(Grand Central Dispatch)的程序从 OSX 移植到 Ubuntu 11.10。我安装了 libdispatch 但我不断收到以下错误:

奇怪的是,dispatch_main() 是在我包含的头文件中声明的,我调用该头文件中声明的其他函数,编译器会识别它们。它只是 dispatch_main() 它看不到,如果我调用 dispatch_main(2) 它说参数太多,所以我知道编译器可以看到标题。

我尝试将编译和链接步骤(clang -c ...)分开,因为它之前适用于未定义的引用错误,但它似乎在这里没有做任何事情......

有人有什么建议吗?我对这个很困惑...

0 投票
2 回答
1430 浏览

ios - 大中央调度无块

是否可以在没有块的情况下使用 GCD?正如 mikeash 在他的帖子中所说,有没有办法使用 _f 变体来使用 GCD 。我四处寻找,双方都没有证据。是可能还是不可能。

如果可行,请举个例子。

/塞尔文