Swift iOS:可以从多个线程/位置调用特定函数,但我希望每个调用都在队列中执行
我有一个从HealthKit读取数据的函数readData,它需要几秒钟才能执行。 这个函数可以从多个线程/位置调用,但我希望每个调用都在一个队列中执行,一次一个,而不是并行执行Swift iOS:可以从多个线程/位置调用特定函数,但我希望每个调用都在队列中执行,swift,multithreading,grand-central-dispatch,nsoperationqueue,Swift,Multithreading,Grand Central Dispatch,Nsoperationqueue,我有一个从HealthKit读取数据的函数readData,它需要几秒钟才能执行。 这个函数可以从多个线程/位置调用,但我希望每个调用都在一个队列中执行,一次一个,而不是并行执行 在Swift for iOS中,是否有一种简单的方法可以使用GCD或OperationQueues来实现这一点?是的,串行调度队列应该可以解决您的问题。确保您在需要访问它的每个函数都可以访问的范围内创建它 let serialQueue = DispatchQueue(label: "serialQueue") ser
在Swift for iOS中,是否有一种简单的方法可以使用GCD或OperationQueues来实现这一点?是的,串行调度队列应该可以解决您的问题。确保您在需要访问它的每个函数都可以访问的范围内创建它
let serialQueue = DispatchQueue(label: "serialQueue")
serialQueue.async{ //call this whenever you need to add a new work item to your queue
//call function here
}
我有一个类似的问题,我考虑过DispatchQueue,但是我担心上面的@pratik要求顺序执行提交的流程(不是并行的)。调度队列本质上是串行的(FIFO),但是这些进程的执行仍然可以在多核处理器中并行进行。