小编cub*_*nux的帖子

runBlocking Coroutine 不会阻止 GlobalScope.launch (?)

Kotlin 的 runBlocking Coroutine 应该阻塞当前线程,直到块内的 Coroutine 完成执行,但当块内的 Coroutine 为 GlobalScope.launch 时,它似乎不会这样做

我试图了解 Kotlin 的协程如何工作并阅读此处的文档 - https://kotlinlang.org/docs/reference/coroutines/basics.html

在示例中 -

fun main() = runBlocking<Unit> { // start main coroutine
    GlobalScope.launch { // launch new coroutine in background and continue
        delay(1000L)
        println("World!")
    }
    println("Hello,") // main coroutine continues here immediately
    delay(2000L)      // delaying for 2 seconds to keep JVM alive
}
Run Code Online (Sandbox Code Playgroud)

提到“调用 runBlocking 的主线程会阻塞,直到 runBlocking 内的协程完成”。如果是这样,那么为什么我们需要两秒的延迟来在 runBlocking 结束时阻塞主线程呢?为什么 runBlocking 不会阻塞主线程直到 GlobalScope.launch 完成?

但是,以下内部 runBlocking 会阻塞主线程,直到延迟函数完成。这里有什么区别?为什么上面的 runBlocking 不会阻塞主线程,直到 GlobalScope.launch 以类似的方式完成 -

fun …
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines

7
推荐指数
1
解决办法
1454
查看次数

Xcode 6嵌入式二进制文件

我们正在Xcode 6.1上构建一个iOS 8应用程序,它具有以下项目结构 -

  • UI(Git Repo 1)
  • 框架(Git Repo 2)

Git Repo 2作为子模块添加到Git Repo 1.框架项目在UI项目下列为"嵌入式二进制".我们有几个问题 -

  • 嵌入式二进制文件的路径特定于开发人员的计算机,每个开发人员必须在从repo中提取最新代码后更新路径.
    • 如果上面的路径特定于特定的机器,我们如何在Jenkins上构建代码?

有没有更好的方法来处理上述情况?

git xcode ios jenkins

5
推荐指数
1
解决办法
1818
查看次数

为什么 Node.js 每个进程旋转 7 个线程

当 Node.js 进程启动时,top 命令显示有 7 个线程附加到该进程。所有这些线程都在做什么?此外,随着 API 负载的增加,请求处理程序本身会异步等待其他上游 API 调用,Node 是否会产生额外的工作线程?我在顶部看到它确实做到了这一点。但我认为这只发生在文件 I/O 上。为什么需要这些额外的工作线程?

javascript worker-thread node.js

2
推荐指数
1
解决办法
861
查看次数