在iOS Swift中并行运行两个循环

时间:2019-03-07 08:44:46

标签: ios swift

是否可以在Swift编程语言中并行运行两个While循环。这两个循环都是独立的,但都是繁重的过程。

是否可以一次运行两个循环

2 个答案:

答案 0 :(得分:2)

是的,有可能。您只需要在单独的线程上运行两个循环。

一般规则:如果要同时运行两个进程,则必须分别运行它们。


您可以将示例代码复制并粘贴到操场上以查看其工作方式:

//DispatchQueue(label: "com.app.queue1", qos: .background).async {
DispatchQueue.global(qos: .background).async {
    while true {
        print(1)
        sleep(1)
    }
}
//DispatchQueue(label: "com.app.queue2", qos: .background).async {
DispatchQueue.global(qos: .background).async {
    while true {
        print(2)
        sleep(1)
    }
}

...您还可以仅使用主线程和一个背景。这取决于您的需求。但是主要思想是相同的,您必须有单独的线程。

答案 1 :(得分:1)

您可以在2个独立的后台线程中调用它。

DispatchQueue.global(qos: .background).async {
   // function 1
}

DispatchQueue.global(qos: .background).async {
   // function 2
}

由于这些是后台线程,因此如果要执行操作,然后在主线程中执行某些操作,则必须切换到DispatchQueue.main.

如果要在2个单独的队列上运行它们,可以使它们类似于

let backgroundQueue = DispatchQueue(label: "loadQueueOne", qos: .background)
backgroundQueue.async {
    // function 1
}

您可以类似地为第二个队列单独创建另一个。