Swift 控制台中的命令行工具Xcode中不会打印任何内容

Swift 控制台中的命令行工具Xcode中不会打印任何内容,swift,barrier,Swift,Barrier,当我运行以下代码时,命令行工具Xcode中的控制台中不会打印任何内容: import Foundation class A { var someValue = 0 let concurrentQueue = dispatch_queue_create("queue_for_property", DISPATCH_QUEUE_CONCURRENT) func increaseValueBy1000() { dispatch_barrier_async(concurrent

当我运行以下代码时,命令行工具Xcode中的控制台中不会打印任何内容:

import Foundation

class A {
  var someValue = 0

  let concurrentQueue = dispatch_queue_create("queue_for_property", DISPATCH_QUEUE_CONCURRENT)

  func increaseValueBy1000() {
    dispatch_barrier_async(concurrentQueue) {
      for _ in 0 ..< 1000 {
        let v = self.someValue + 1
        print(v)
        self.someValue = v
      }
    }
  }
}

let instance1 = A()

dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0)) {
  instance1.increaseValueBy1000()
}

instance1.increaseValueBy1000()
<代码>导入基础 甲级{ var someValue=0 让concurrentQueue=dispatch\u queue\u create(“queue\u for\u属性”,dispatch\u queue\u CONCURRENT) func将值增加1000(){ 调度\u屏障\u异步(concurrentQueue){ 对于0中的uu..<1000{ 设v=self.someValue+1 印刷品(五) self.someValue=v } } } } 设instance1=A() 调度异步(调度获取全局队列(QOS类用户交互,0)){ instance1.increaseValueBy1000() } instance1.increaseValueBy1000() 我在控制台中没有看到任何打印语句。 如果我移除隔离线,效果很好。
在这种情况下,我做错了什么?为什么我的屏障不允许打印?

应用程序-比如命令行程序-没有“运行循环”必须调用

dispatch_main() // Swift 2
dispatchMain()  // Swift 3
为了使用GCD。从:

此函数“停驻”主线程,并等待执行块 已提交到主队列。调用
UIApplicationMain的应用程序
(iOS)、
NSApplicationMain
(Mac OS X)或主屏幕上的
CFRunLoopRun
线程不能调用
dispatch\u main


应用程序——比如有命令行程序的应用程序——还没有“运行循环”的应用程序必须调用

dispatch_main() // Swift 2
dispatchMain()  // Swift 3
为了使用GCD。从:

此函数“停驻”主线程,并等待执行块 已提交到主队列。调用
UIApplicationMain的应用程序
(iOS)、
NSApplicationMain
(Mac OS X)或主屏幕上的
CFRunLoopRun
线程不能调用
dispatch\u main


谢谢,你能解释一下我应该叫它什么部分吗?@wm.p1us:在你的节目结束时。另见,谢谢!工作起来很有魅力!但若我移除障碍,我得到的是复制值,但不是竞争条件。因为值不会被重写。我在用swift语言创建的命令行工具中也面临同样的问题。需要做什么?以上链接对于apple开发者论坛无效。请解释解决方案。@Tejas:我已经添加了一个指向当前文档的链接。谢谢,您能解释一下我应该将其称为哪个部分吗?@wm.p1us:在您的程序结束时。另见,谢谢!工作起来很有魅力!但若我移除障碍,我得到的是复制值,但不是竞争条件。因为值不会被重写。我在用swift语言创建的命令行工具中也面临同样的问题。需要做什么?以上链接对于apple开发者论坛无效。请解释解决方案。@Tejas:我添加了一个指向当前文档的链接。