草庐IT

synchronize

全部标签

ios - 在具有返回值的方法中使用@synchronized

如果我在方法中使用指令@synchronized,并且该方法有一个返回值BOOL或NSString,我应该使用哪个?@synchronized(self){if(![selfhasSource]){*source=nil;returnYES;}}returnNO;===或者====@synchronized(self){if(![selfhasSource]){*source=nil;returnYES;}returnNO;} 最佳答案 在您发布的代码中,两者都有效,因为返回值不会受到试图同时访问同步代码的两个线程的影响。如果返回值

ios - `NSUserDefaults synchronize`怎么跑得这么快?

在我的应用程序中,我想为每个登录的用户将用户设置保存在一个plist文件中,我写了oneclasscalledCCUserSettings它具有与NSUserDefaults几乎相同的界面,并且它读取和写入与当前用户ID相关的plist文件。它有效但性能不佳。每次用户调用[[CCUserSettingssharedUserSettings]synchronize],我写一个NSMutableDictionary(保存用户设置)到plist文件,下面的代码显示synchronizeCCUserSettings的省略了一些琐碎的细节。-(BOOL)synchronize{BOOLr=[_s

iOS 核心音频 : synchronize play and record to high accuracy ( < 5ms error )

我正在尝试:-播放点击音轨-通过内置的iphone/ipad麦克风录制用户音频我需要点击轨迹(每次点击我研究了aurioTouch示例并假设这是获得低延迟/高精度性能的最佳方式...以aurioTouch为起点,任何人都可以阐明如何产生准确的点击然后将录制的音频同步到该点击?我的意思是我应该知道相对于点击点击的时间,各种样本的位置。我们可以假设用户戴着耳机,因此点击不会干扰录制的音频。 最佳答案 我认为您无法可靠地做到这一点。另一种更可靠的方法是确保您生成的点击确实被记录下来,然后您可以在录制的音频中识别这些点击并根据这些真实世界测

ios - @synchronized 指令的使用 - Objective-C Mutex Lock iOS

在方法体上使用@synchronized指令-(void)testSynchronizeMethod:(int)value{@synchronized(value){intvalue1=100;//sampleline1intvalue2=120;//sampleline2[selfcalledMethod];}}//case1-(void)calledMethod{NSLog(@"is@synchronizeddirectiveappliedtothismethod");NSLog(@"whathappensifIenclosethismethodwith@synchronizedd

iphone - @synchronized(self) 有多少开销?

我一直在为我的iPhone应用开发一个对象类,它可以在应用的另一部分首次请求图像时延迟加载图像。我决定使图像线程的加载安全,这样同一图像不会意外加载两次,但是我很好奇每次运行访问器时进行@synchronized(self)调用的开销,如下所示:-(UIImage*)image{@synchronized(self){if(_image==nil){_image=[UIImageimageWithContentsOfFile:self.imageUrl];}}return_image;}首先检查属性是否为nil然后使用@synchronized指令会更好吗?-(UIImage*)ima

ios - 这个 GCD 实现的 getter setter 线程安全并且比@synchronized 工作得更好吗?对象

@interfaceViewController()@property(nonatomic,strong)NSString*someString;@end@implementationViewController@synthesizesomeString=_someString;-(NSString*)someString{__blockNSString*tmp;dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{tmp=_someString;});returntmp;}-(void

java - 安卓/java : synchronized object wait and notify

我对同步方法感到困惑。看下面这段代码:publicvoidwaitOne()throwsInterruptedException{synchronized(monitor){while(!signaled){monitor.wait();}}}publicvoidset(){synchronized(monitor){signaled=true;monitor.notifyAll();}}现在,据我了解,同步意味着只有1个线程可以访问其中的代码。如果waitOne()被主线程调用,set()被子线程调用,那么(从据我所知)它会造成死锁。这是因为ma​​inthread永远不会退出syn

Java 同步游戏 : synchronized && wait && notify

我来自.NET世界,不幸的是用.NET的眼光看Java源代码。以下代码来自Android应用程序(尽管根本不是特定于Android的):privateclassWorkerimplementsRunnable{privatefinalObjectmLock=newObject();privateLoopermLooper;Worker(Stringname){Threadt=newThread(null,this,name);t.start();synchronized(mLock){while(mLooper==null){try{mLock.wait();}catch(Interr

java - onReceive() 回调中的同步块(synchronized block)

我正在阅读thispage关于如何对Android进行编程以与USB配件对话。其中一个步骤涉及注册BroadcastReceiver以获得用户的许可:IntentFilterfilter=newIntentFilter(ACTION_USB_PERMISSION);registerReceiver(mUsbReceiver,filter);其中mUsbReceiver定义为:privatefinalBroadcastReceivermUsbReceiver=newBroadcastReceiver(){publicvoidonReceive(Contextcontext,Intenti

java - 多线程正确性 : Using synchronized block

我正在使用CMUSphinx语音识别器库(Linktosource),它使用了一些synchronizedblock。来自RecognizerTask的一个示例block:Eventmailbox;[...]publicvoidstart(){synchronized(this.mailbox){this.mailbox.notifyAll();this.mailbox=Event.START;}}代码没有任何问题,但是BugFinder给出了这个警告:Bug:SynchronizationonRecognizerTask.mailboxinfutileattempttoguardit