1.程序框架分析:a)首先将mutex, condition, queue 封装成各自的类,方便对外提供接口函数,这里要注意 condition的封装,一个条件变量和一把锁是一起用的,因此在初始化 condition 对象的时候要用一个 mutex 对象去初始化,在pthread_cond_wait...
分类:
编程语言 时间:
2014-07-16 17:43:12
阅读次数:
203
高维数据的可伸缩最近邻算法FLANN
1. 简介
在计算机视觉和机器学习中,对于一个高维特征,找到训练数据中的最近邻计算代价是昂贵的。对于高维特征,目前来说最有效的方法是 the randomized k-d forest和the priority search k-means tree,而对于二值特征的匹配 multiple hierarchical clusteringtrees则...
分类:
其他好文 时间:
2014-07-15 10:42:24
阅读次数:
727
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步相互排斥量Mutex》前面介绍了关键段CS、事件Event、相互排斥量Mutex在经典线程同步问题中的使用...
分类:
编程语言 时间:
2014-07-15 08:39:59
阅读次数:
276
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-07-13 23:31:28
阅读次数:
269
BACKGROUNDMany algorithms on a graphics processing unit (GPU) may benefit from doing a query in a hierarchical tree structure (including quad-trees, o...
分类:
其他好文 时间:
2014-07-13 19:47:28
阅读次数:
289
经验:异常安全函数即使发生异常也不会泄漏资源或允许任何数据结构败坏。这样的函数区分为三种
可能的保证:
基本型-->发生异常,程序处于某个合法状态
强烈型-->发生异常,程序处于原先状态
不抛异常型-->承诺绝不抛出殿堂
示例:
class PrettyMenu{
public:
//...
void changeBackground(std::istream &imgSrc); //改变背景图像
//...
private:
Mutex mutex; //互斥器
Image *bgI...
分类:
编程语言 时间:
2014-07-12 21:35:16
阅读次数:
298
自旋锁(spinlock)与互斥锁(mutex)是并发编程中两个重要的概念。它们的主要作用是:对共享资源加锁以阻止数据的并发访问,从而保证数据一致性。但是它们也有一些不同点。本文主要介绍这些不同点,并说明我们什么时候该用自旋锁取代互斥锁。
理论基础
理论上,当一个线程尝试去获取一个互斥锁,但由于该互斥锁已经被其它线程获取而没有成功时,它会立刻进入休眠状态,从而让出CPU时间,允许其它线...
分类:
其他好文 时间:
2014-07-10 21:34:15
阅读次数:
241
LINUX环境下多线程编程肯定会遇到需要条件变量的情况,此时必然要使用pthread_cond_wait()函数。但这个函数的执行过程比较难于理解。
pthread_cond_wait()的工作流程如下(以MAN中的EXAMPLE为例):
Consider two shared variables x and y, protected by the mutex mut,...
分类:
其他好文 时间:
2014-07-10 19:50:36
阅读次数:
347
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-07-05 17:44:12
阅读次数:
155
1.PackageExplorer显示文件层次的默认方式是平行列出所有包,其实也可显示成多级,而且效果比navigator好多了。
PackageExplorer视图中,"右上角箭头→package presentation→hierarchical"
注:1>千万别用navigator,那玩意已经被eclipse抛弃了,PackageExplorer转为java定制,各种重构相当方便...
分类:
移动开发 时间:
2014-07-04 07:23:41
阅读次数:
243