条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。int pthread_cond_wait(pthread_cond_t *cond...
分类:
其他好文 时间:
2014-10-13 17:27:29
阅读次数:
417
实现强占式camera service,当某些应用(如手电筒)在后台打开camera后,当camera app open camera时可以强占被后台应用占有的camera.
1. 修改CameraService.cpp (frameworks/av/services/camera/libcameraservice/)
文件的connect()方法,将
原来的
Mutex:...
分类:
移动开发 时间:
2014-10-13 14:05:29
阅读次数:
299
spinlock,mutex,semaphore,critical section的作用与区别...
分类:
其他好文 时间:
2014-10-13 12:29:39
阅读次数:
218
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。
这题是最后10分钟出的,因为没有考虑value为{}...
分类:
其他好文 时间:
2014-10-13 11:44:59
阅读次数:
228
题意:
模拟python的字典。给出一个字典,然后有1000个查询,输出对应的键值。
分析:
简单粗暴的字符串神烦模拟。因为打的网络同步赛,内存限制得很死,采用了离线操作。
抓住这几个关键的符号:‘{’ '}' ',' ':' 进行操作。具体见代码及注释,数据不是非常恶心。...
分类:
其他好文 时间:
2014-10-12 19:12:48
阅读次数:
224
SQLite支持3种线程模式: 单线程:这种模式下,没有进行互斥,多线程使用不安全。禁用所有的mutex锁,并发使用时会出错。当SQLite编译时加了SQLITE_THREADSAFE=0参数,或者在初始化SQLite前调用sqlite3_config(SQLITE_CONFIG_SINGLETH....
分类:
数据库 时间:
2014-10-10 12:32:34
阅读次数:
252
不知道大家对多线程或多进程间的同步互斥的控制机制了解的怎么样,其实有很多种方法可以实现这个目的,但是这些方法其实由4种最基本的方法实现。这4种最基本的方法具体定义如下:在这有讲得不对的地方欢迎各位扔砖,希望不会误导大家。
1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。
2、互斥量:为协调共同对一个共享资源...
分类:
编程语言 时间:
2014-10-09 16:17:58
阅读次数:
183
多线程之线程同步Mutex (功能与Critial Sections相同,但是属于内核对象,访问速度较慢,可以被不同进程调用)
一 Mutex
互斥对象(mutex)内核对象能够确保线程拥有对单个资源的互斥访问权。实际上互斥对象是因此而得名的。互斥对象包含一个使用数量,一个线程ID和一个递归计数器。
互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码...
分类:
编程语言 时间:
2014-10-09 01:21:37
阅读次数:
266
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-10-08 13:05:15
阅读次数:
158