word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感。一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员。读完代码后,觉得收获颇多,整理成文,给有需要的朋友参考。...
分类:
其他好文 时间:
2014-07-19 23:41:39
阅读次数:
425
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Mikolov 在两篇相关的论文 [3,4] 中并没有谈及太多算法细节,因而在一定程度上增加了这个工具包的神秘感。一些按捺不住的人于是选择了通过解剖源代码的方式来一窥究竟,出于好奇,我也成为了他们中的一员。读完代码后,觉得收获颇多,整理成文,给有需要的朋友参考。...
分类:
其他好文 时间:
2014-07-19 23:12:39
阅读次数:
332
osMutexDef( Mutex );osMutexId mutex;void Thread0( void * arg);void Thread1( void * arg);osThreadDef( Thread0, Thread0, osPriorityNormal, 512 );osThrea...
分类:
其他好文 时间:
2014-07-19 15:09:35
阅读次数:
387
Mutex 用途和critical section 非常类似,不过Mutex是内核对象,速度比section慢。Mutexes可以跨进程使用。另外Mutex在等待的时候可以设置等待时间。以下是两种对象的相关函数比较:CRITICAL_SECTION Mut...
分类:
编程语言 时间:
2014-07-19 00:38:29
阅读次数:
342
#include class CTestLock { public: CTestLock() { pthread_mutex_init(&mutex_t_, NULL); pthread_cond_init(&cond_t_, NULL); ...
分类:
其他好文 时间:
2014-07-18 12:01:59
阅读次数:
202
pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t*mutex)函数
传入的参数mutex用于保护条件,因为我们在调用pthread_cond_wait时,如果条件不成立我们就进入阻塞,但是进入阻塞这个期间,如果条件变量改变了的话,那我们就漏掉了这个条件。因为这个线程还没有放到等待队列上,所以调用pthread_cond_wait前要先...
分类:
编程语言 时间:
2014-07-17 20:24:12
阅读次数:
236
#include
#include
#include
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*初始化条件变量*/
void *thread1(void *);
void *thread2(void *)...
分类:
其他好文 时间:
2014-07-17 20:10:40
阅读次数:
218
在线程实际运行过程中,我们经常需要多个线程保持同步。这时可以用互斥锁来完成任务;互斥锁的使用过程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock这几个函数以完成锁的初始化,锁的销毁,上锁和释放锁操作。
一,锁的创建
锁可以被动态或静态创建,可以用宏PTHRE...
分类:
编程语言 时间:
2014-07-17 16:38:59
阅读次数:
303
1.封装Mutex1.1 封装前先总结一下常用的mutex操作有:pthread_mutex_init(&mutex, NULL ); //初始化一个互斥锁pthread_mutex_destroy(&mutex); //销毁一个互斥锁pthread_mutex_lock(&mutex); //上锁...
分类:
编程语言 时间:
2014-07-16 17:41:55
阅读次数:
242