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

在iOS Swift中并行运行两个循环,ios,swift,Ios,Swift,在Swift编程语言中是否可以并行运行两个While循环。两个循环都是独立的,但都是繁重的过程 是否可以一次运行两个循环是的,这是可能的。您只需在单独的线程上运行两个循环。 这是一般规则:如果要同时运行两个进程,必须分别运行它们 示例代码,您可以将其复制并粘贴到游乐场以查看其工作原理: //DispatchQueue(label: "com.app.queue1", qos: .background).async { DispatchQueue.global(qos: .background)

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


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

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

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


示例代码,您可以将其复制并粘贴到游乐场以查看其工作原理:

//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)
    }
}

。。。您也可以只使用主线程和一个背景。这取决于你需要什么。但是主要思想是一样的,你必须有独立的线程。

你可以在两个独立的后台线程中调用它

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

DispatchQueue.global(qos: .background).async {
   // function 2
}
由于这些是后台线程,如果您想执行,那么在主线程中执行一些操作,您必须切换到
DispatchQueue.main.

如果要在两个单独的队列上运行它们,可以将它们设置为

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

同样,您也可以为第二个队列创建另一个单独的队列。

请您给出小的代码解释。顺便说一句,您并不能确保它们在不同的线程上运行。它们可能会在同一个队列和线程上运行。你的循环到底在做什么?Sulthan我想op只是想在后台运行两件事情,但我已经更新了答案。谢谢你指出这一点。:)这个解决方案是正确的,我只是在解释:)后台队列是并行的,因此它有可能在两个线程上执行,但你不能真正确定。是的。我非常感谢你的反馈。干杯。:)