草庐IT

阻塞队列--LinkedBlockingQueue

全部标签

iphone - iOS,音频队列 : Buffer size is not contant

我在我的应用程序中使用音频队列服务。分配缓冲区时,我将缓冲区大小设置为30000个样本:AudioQueueAllocateBuffer(mQueue,30000,&mBuffers[i]);但是回调的后续调用是使用以下inNumberPacketDescriptions进行的:300003000030000269283000030000它们并不总是等于30000。为什么?记录格式配置(使用CAStreamBasicDescription):mRecordFormat.mSampleRate=kSampleRate;mRecordFormat.mChannelsPerFrame=1;m

ios - 移动到后台后保持调度队列运行 5 秒

当用户将应用程序移至后台时,我正在使用串行调度队列来序列化一些网络请求。-(void)applicationDidEnterBackground:(UIApplication*)application{dispatch_queue_topQ=dispatch_queue_create("com.myapp.network",NULL);dispatch_async(opQ,^{[selfsendNetworkData1];[selfsendNetworkData2];[selfsendNetworkData3];});}问题是,当它们在我创建的这个队列上运行时,应用程序不会保持事件状态

ios - 排队 NSURLRequest 以模拟同步阻塞请求

我正在与网络控制的硬件设备进行交互。您通过URL(例如、http://device/on?port=1或http://device/off?port=3)打开和关闭东西,它会发回“成功”或“失败”。然而,它是一个简单的设备,因此当它处理一个请求时——即,直到它返回它正在处理的请求的状态——它会忽略所有后续请求。它不会将它们排队;他们只是迷路了。所以我需要发送串行、同步的请求。即,请求#1,等待响应#1,请求#2,等待响应#2,请求#3,等待响应#3,等等。我是否需要管理自己的线程安全请求队列,让UI线程将请求推送到队列的一端,并让另一个线程拉出请求,一次一个,就像前一个一样完成或超时,

ios - webViewDidFinishLoad 阻塞主线程

我刚刚注意到webViewDidFinishLoad方法阻塞了整个应用程序,所以我什至无法触摸任何按钮。我需要解析UIWebView的结果页面,这可能会花费很多时间。那么在不阻塞整个应用程序的情况下解析它的最佳方法是什么?也许创建另一个线程? 最佳答案 使用GCD在后台解析它:-(void)webViewDidFinishLoad:(UIWebView*)webView{//GetthecontentsfromtheUIWebView(inthemainthread)NSString*data=[webViewstringByEva

ios - 未调用音频队列回调

所以,基本上我想播放一些音频文件(主要是mp3和caf)。但是回调永远不会被调用。只有当我调用他们准备队列时。这是我的数据结构:structAQPlayerState{CAStreamBasicDescriptionmDataFormat;AudioQueueRefmQueue;AudioQueueBufferRefmBuffers[kBufferNum];AudioFileIDmAudioFile;UInt32bufferByteSize;SInt64mCurrentPacket;UInt32mNumPacketsToRead;AudioStreamPacketDescription

ios - 创建内存累积的 AFHTTPRequestOperations 队列

我刚刚更新到AFNetworking2.0,我正在重写我的代码以下载数据并将其插入到核心数据中。我下载JSON数据文件(从10-200mb文件不等),将它们写入磁盘,然后将它们传递给后台线程来处理数据。下面是下载JSON并将其写入磁盘的代码。如果我只是让它运行(甚至不处理数据),应用程序会耗尽内存,直到它被终止。我假设当数据进入时,它存储在内存中,但是一旦我保存到磁盘,为什么它会留在内存中?自动释放池不应该处理这个吗?我还将responseData和downloadData设置为nil。有什么明显的地方我做错了吗?@autoreleasepool{for(inti=1;i谢谢!编辑#1

ios - FMDB 阻塞用户界面。但为什么?对替代实现有什么建议吗?

我有一个使用FMDB并在应用程序启动后立即执行更新(仅一次)的应用程序。更新非常繁重,需要12-20秒来处理。我将FMDatabaseQueue与基于单例类的事务一起使用。========DB.h====================@interfaceDB:NSObject{FMDatabaseQueue*dbqueue;NSArray*queriesCreateSchema;NSString*dbFullPath;}@property(nonatomic,strong)FMDatabaseQueue*dbqueue;================================

ios - 哪个队列用于-[NSObject performSelector :withObject:afterDelay]?

我最近遇到了延迟选择器没有触发的问题(一个NSTimer和用performSelector:withObject:afterDelay调用的方法)。我已经阅读了Apple的文档,它确实在特殊注意事项区域中提到了,Thismethodregisterswiththerunloopofitscurrentcontext,anddependsonthatrunloopbeingrunonaregularbasistoperformcorrectly.Onecommoncontextwhereyoumightcallthismethodandendupregisteringwitharunlo

云消息队列 Kafka 版生态谈第一期:无代码转储能力介绍

作者:娜米云消息队列 Kafka版为什么需要做无代码转储云消息队列Kafka版本身是一个分布式流处理平台,具有高吞吐量、低延迟和可扩展性等特性。它被广泛应用于实时数据处理和流式数据传输的场景。然而,为了将云消息队列 Kafka版与其他数据源和数据目的地集成,需要额外的开发/组件来实现数据的传输和同步,客户需要大量的研发、运维等投入。为了提升研发效率,云消息队列Kafka版联合阿里云产品支持到无代码、全托管、Serverless化的功能特性,支持从云消息队列Kafka版到OSS的转储。该功能特性的优势有:简单敏捷开发,简单配置就可以支持该能力轻松转储不同应用程序的OSS数据无需复杂的软件和基础设

objective-c - iOS中的中断队列或文件写操作

我在iPhone上处理大图像,因此将它们保存到磁盘可能需要几秒钟,有时在图像未完成保存时会出现删除图像的指令。我想中断保存过程并立即删除文件,而不是等待它先保存,但我找不到任何中断队列或保存操作的方法。@interfaceYMSavedImage:NSObject{UIImage*image;NSString*path;dispatch_queue_timageAccess;...}@end@implementationYMSavedImage-(id)init{...imageAccess=dispatch_queue_create("imageAccessQueue",NULL);