jjzjj

semaphore

全部标签

ios - ABAddressBookRequestAccessWithCompletion iOS 7 和信号量

根据我收集到的信息,这段代码之前已经发布过,并且也被使用过。我处于一种情况,我需要代码才能继续,直到我知道我是否可以访问联系人。在Xcode5.0.2和iOS6上,这工作得很好。在iOS7上,它永远挂起,然后当我终止应用程序时,会出现对话框要求允许访问联系人。ABAddressBookRefaddressBook=ABAddressBookCreate();__blockBOOLaccessGranted=NO;if(ABAddressBookRequestAccessWithCompletion!=NULL){//we'reoniOS6dispatch_semaphore_tsema

ios - 使用信号量从异步调用返回值

我需要使用NSURLSession进行网络调用。基于某些事情,我收到响应后,需要返回一个NSError对象。我正在使用信号量使异步调用同步运行。问题是,err在调用中正确设置,但是一旦信号量结束(在dispatch_semaphore_wait(信号量,DISPATCH_TIME_FOREVER);),err变为nil。请帮忙代码:-(NSError*)loginWithEmail:(NSString*)emailPassword:(NSString*)password{NSError__block*err=NULL;//preparingtheURLofloginNSURL*Url=

Android:WAITING firebase valueEventListener

我正在尝试使用信号量来等待我的firebasevalueEventListener。我有一个用户信息Activity,其中包含用户必须填写的6个不同字段。当用户保存他/她的信息时,我想进行“全有或全无”类型的检查。某些用户信息不能重复...例如用户名、电子邮件和电话号码。我正在使用firebase,目前的一般想法是格式:voidsaveUserInfo(){if(field1existindatabase){return;}...if(field6existindatabase){return;}savefield1();...savefield6();}我遇到的问题是检查该值是否已存

java - 信号量 : Where do I learn about basic concepts such as permits, 公平、闯入等

Semaphore类概述developer.android.com看起来不错-对于那些已经熟悉这些概念和术语的人来说。我熟悉那里的一些首字母缩略词和其他行话(例如FIFO、锁等),但其他的如permits、fairness和barging对我来说是新的。您能否推荐一个很好的在线资源来解释这些概念?(我大概能弄清楚什么是permits和fairness但barging在这一点上是未知数)。编辑:收到以下两个答案后,我意识到我需要刷新信号量(重新获取()术语)。我发现以下资源很有用:Semaphore_(programming)IntroductiontoSemaphores经过理查德·霍

详解FreeRTOS中的信号量(semaphore)

信号,顾名思义最基础的作用是通知,量,表示数量,意思就是可以有多个信号。在不同的场景延伸下,还有同步和互斥访问资源的作用(这都是通知作用的延伸)。当"量"没有限制时,它就是"计数型信号量"(CountingSemaphores)当"量"只有0、1两个取值时,它就是"二进制信号量"(BinarySemaphores)参考资料:FreeRTOS全解析-8.信号量(semaphore)目录1.二进制信号量1.1创建二进制信号量1.2give/take1.3删除1.4例子2.计数信号量1.二进制信号量二进制信号量和我们裸机编程时经常设置的flag很像。比如某个数据好了,或者某个行为做了,我们就设置fl

c++ - 线程和简单的死锁修复

当使用互斥锁和信号量处理线程(特别是在C++中)时,是否有一个简单的经验法则来避免死锁并获得干净的同步? 最佳答案 一个很好的简单经验法则是始终从应用程序的任何位置以一致的可预测顺序获取锁。例如,如果您的资源有名称,请始终按字母顺序锁定它们。如果他们有数字id,总是从低到高锁定。确切的顺序或标准是任意的。关键是要一致。这样你就永远不会出现死锁情况。例如。线程1锁定资源A线程2锁定资源B线程1等待获取B上的锁线程2等待获取A上的锁僵局如果您遵循上述经验法则,上述情况就永远不会发生。有关更详细的讨论,请参阅Wikipediaentryo

C++ 持有多个线程

我是C++(在Windows上)和线程的新手,目前我正在尝试使用互斥锁、信号量和事件找到解决我的问题的方法。我正在尝试使用构造函数和名为Enter的方法创建Barrier类。具有唯一方法Enter的Barrier类应该阻止任何进入它的线程,直到许多线程到达该方法。构造函数接收到的等待它的线程数。我的问题是如何使用锁来产生这种效果?我需要的是类似于反向信号量的东西,它保持线程直到达到计数,而不像常规信号量那样让线程进入直到达到计数。关于如何解决这个问题的任何想法都会很棒。谢谢,内坦内尔。 最佳答案 也许:在构造函数中,存储限制计数并创

ios信号量等待不等待

当使用大于0的值创建信号量时,我在使用dispatch_semaphore_wait(..)时遇到问题sema=dispatch_semaphore_create(2);dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{//signalshere});dispatch_semaphore_wait(sema,DISPATCH_TIME_FOREVER);dispatch_release(sema);wait不应该要等两个信号吗?在上面的代码中,它根本不等待,所以调用了发布,结果是崩

ios - 如何等待完成 dataTaskWithRequest?

如何等待dataTaskWithRequest完成?网络抓取完全结束后,我需要执行一些任务。 最佳答案 如果确实需要同步请求,可以使用信号量。我在NSURLSession上实现了一个小类来提供这个功能。在.h文件中:@importFoundation.NSURLSession;@interfaceNSURLSession(Additions)+(NSData*)sendSynchronousRequest:(NSURLRequest*)requestreturningResponse:(NSURLResponse**)respons

ios - dispatch_semaphore_wait 不等待信号量

我开发了以下方法,用于检查应用程序与服务器通信的能力。该方法执行一个简单的查询,并且知道如果得到结果,应用程序应该已连接(基本的ping机制)。-(BOOL)isAppConnected{__blockBOOLisConnected=NO;dispatch_semaphore_tsemaphore=dispatch_semaphore_create(0);[[SFRestAPIsharedInstance]performSOQLQuery:@"SELECTidFROMAccountLIMIT1"failBlock:^(NSError*e){isConnected=NO;NSLog(@"