@synchronized与NSLock实例与pthread_mutex_t

Art*_*sev 9 multithreading cocoa-touch objective-c ios

我正在观看有关多线程的(2岁)教程视频

  • NSLock实例比使用@synchronized快3倍
  • pthread_mutex_tNSLock实例快2 倍(实际上比@synchronized快6倍)

这是真的?我没有找到任何有权威的说明,但我只是想在StackOverflow上对你们中的一些人进行民意调查,以获得你们的意见和可能的证据.

谢谢!

虽然我已经接受了正确的答案,但是这个问题的未来观众会发现这篇文章很有帮助:http://perpendiculo.us/?p = 133

Hot*_*cks 12

重要的是要记住,@synchronized包括必要的try/catch逻辑以释放异常中的锁.一旦你添加了这个逻辑,性能差异(整体幅度不是很大)可能会显着减少.

  • 还要记住@synchronized是一个递归锁,而NSLock则不是. (4认同)
  • @ArtSabintsev - pthread_mutex可以是递归的,也可以不是递归的,具体取决于它的初始化方式.Dunno,如果这会影响它的表现.(可能性能测试是使用非递归互斥锁完成的.) (2认同)