是否可以在Swift编程语言中并行运行两个While循环。这两个循环都是独立的,但都是繁重的过程。
是否可以一次运行两个循环
答案 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
}
您可以类似地为第二个队列单独创建另一个。