在Apple的核心数据并发核心数据文档中,他们列出了线程安全的首选方法,即每个线程使用单独的NSManagedObjectContext和共享的NSPersistentStoreCoordinator.
如果我有一些NSOperations在NSOperationQueue上一个接一个地运行,那么每个任务创建上下文会有很大的开销吗?
由于NSOperationQueue的最大并发操作数为1,因此我的许多操作将使用相同的线程.我可以使用线程字典为每个线程创建一个NSManagedObjectContext吗?如果我这样做,我以后会有问题清理我的背景吗?
在这种情况下使用Core Data的正确方法是什么?
我将用一个例子来解释这个问题.假设我想生成一个包含两列的列表.第1列包含文件名,第2列包含该文件的md5总和.
这可以使用以下脚本完成:
for FILE in `ls -p | grep -v "/"`;
do
printf "%s %s\n" "$FILE" `md5 -q "$FILE"`;
done;
Run Code Online (Sandbox Code Playgroud)
可以使用管道在一条线上完成吗?我使用的不同组合尝试sed,xargs并且printf但是我觉得我失去了一些东西.这是我的一次尝试:
ls -p | grep -v "/" | xargs -I FILE printf "%s %s\n" FILE `md5 -q FILE`
Run Code Online (Sandbox Code Playgroud)
在那次尝试中,FILE反击内部没有被替换,这并不奇怪.
这是我应该使用多行脚本的事情吗?由于没有逻辑或控制流程,我觉得应该有一个单行,也许我没有正确使用我的工具或者我没有找到合适的工具.
对标题道歉,我不知道该怎么称呼这个问题.