每次滚动视图滚动时都会调用以下代码,如果用户多次滚动它,则会导致代码崩溃。我如何确保一次只执行一个代码或线程安全?
[self.cv addInfiniteScrollingWithActionHandler:^{
[weakSelf loadNextPage];
}];
答案 0 :(得分:0)
这是示例
- (void)_startExperiment {
FooClass *foo = [[FooClass alloc] init];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
for (int i = 0; i < 4; ++i) {
dispatch_async(queue, ^{
[foo doIt];
});
}
[foo release];
}
答案 1 :(得分:0)
常见的模式是使用互斥锁来保护访问和/或修改结构的关键代码段。
只需浏览此链接 - &gt; Does @synchronized guarantees for thread safety or not?