我们在界面上滚动一个scrollview,那么我们会发现在停止滚动前,会发现NSTimer未被执行,就好像scrollView在滚动的时候将timer暂停了一样,在查看相应文档后发现,这其实就是runloop的mode在做怪。
runloop可以理解为cocoa下的一种消息循环机制,用来处理各种消息事件,我们在开发的时候并不需要手动去创建一个runloop,因为框架为我们创建了一个默认的runl...
分类:
其他好文 时间:
2014-10-16 12:26:42
阅读次数:
134
问题描述 问题:在C++代码中是否可以调用android系统的libmedia.so,我用C++写了一个测试程序,调用了libmedia.so中mediaplayer.cpp中的方法进行音频播放,可以通过编译,也可以在android系统的机顶盒中执行,但是prepare()方法一直被阻塞,求大神指点...
分类:
移动开发 时间:
2014-10-16 00:31:21
阅读次数:
176
第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数据段和其他操作系统资源(如打开文件和信号)。线程有四种状态:新生状态、可运行状态、被阻塞状态、死亡状态。...
分类:
编程语言 时间:
2014-10-13 23:09:47
阅读次数:
253
(1)用户级线程
主要解决的是上下文切换的问题,它的调度算法和调度过程会全部由用户自行选择解决,在运行时不需要特定的内核支持。操作系统往往会提供一个用户空间的线程库,该用户程序库提供了线程的创建、调度和撤销等功能,而内核仍然对进程进行管理。如果一个进程中的某一个线程调用了一个阻塞的系统调用函数,那么该进程包括该进程中的线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法...
分类:
编程语言 时间:
2014-10-13 01:50:49
阅读次数:
205
死锁 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 导致死锁的根源在于不适当地运用“synchronized”关键词来管理线程对特定对象的访问。“synchronized”关键词的作用是,确保在某个时刻只有一个线...
分类:
编程语言 时间:
2014-10-12 18:14:08
阅读次数:
175
NSTimer在UITableView滚动时暂停工作由于NSTimer的线程被UITableView的线程暂用了,所以NSTimer暂停工作了,解决办法//在主线程中分配给timer一部分线程,让timer工作[[NSRunLoopmainRunLoop]addTimer:timerforMode:NSRunLoopCommonModes];
分类:
其他好文 时间:
2014-10-11 19:04:26
阅读次数:
222
//1.首先在storyboard中拖一些控件,包括UIButton控件,将UIButton控件拖线到控制器中(方法、CutImage)//2.在CutImage方法中调用NSTimer方法- (IBAction)CutImage:(UIButton *)sender { NSTimer *tim....
分类:
移动开发 时间:
2014-10-09 03:03:47
阅读次数:
252
信号量基础和两个经典例子
信号量(semaphore)
用于进程中传递信号的一个整数值。
三个操作:
1、一个信号量可以初始化为非负值
2、semWait操作可以使信号量减1,若信号量的值为负,则执行semWait的进程被阻塞。否则进程继续执行。
3、semSignal操作使信号量加1。若信号量的值小于等于0,则被semWait操作阻塞的进程讲被接触阻塞。
ps: semWait对应P原语,semSignal对应V原语。
信号量以及PV原语的C语言定义如下...
分类:
其他好文 时间:
2014-10-05 17:37:18
阅读次数:
225
Android从 2.3 开始提供了一个新的类 StrictMode,该类可以用于捕捉发生在应用程序主线程中耗时的磁盘、网络访问或函数调用,可以帮助开发者改进程序,使主线程处理 UI 和动画在磁盘读写和网络操作时变得更平滑,避免主线程被阻塞。所以当你在UI线程中进行有关网络的操作时,Android2.3及以上版本会抛出android.os.NetworkOnMainThreadException异常...
分类:
移动开发 时间:
2014-09-27 17:42:20
阅读次数:
173
NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:NO];//关闭定时器[myTimer se...
分类:
移动开发 时间:
2014-09-26 00:20:17
阅读次数:
172