我有一些像这样的代码:如何终止线程等待@synchronized目标C
doDatabaseFetch {
...
@synchronized(self) {
...
}
}
,并调用doDatabaseFetch为用户使用视图许多对象。
我的问题是,我有一个操作(导航到下一个视图),也需要数据库获取。我的问题是,它碰到同一个同步块并等待它轮到!我理想的情况是喜欢这个操作来杀死所有等待的线程,或者给这个线程更高的优先级,以便它可以立即执行。
苹果表示,
推荐的方式退出线程让它正常退出它的入口点函数。尽管Cocoa,POSIX和Multiprocessing Services提供了直接杀死线程的例程,但是强烈建议不要使用这样的例程。
所以我不认为我应该杀死线程...但是如何让他们正常退出,如果他们在等待一个同步块?我必须编写自己的信号来处理这种行为吗?
谢谢! Nick。
我会完全一致 - 我想我我正在序列化并行执行。实际上,我正在编写一个iPhone数据库访问层,用于访问sqlite,并且该设备在执行数据库访问时相当慢 - 但我想我只需要更聪明;) – 2009-05-26 10:39:30