- 博客(10)
- 收藏
- 关注
转载 pthread的各种同步机制
简述pthread是POSIX标准的多线程库,UNIX、Linux上广泛使用,windows上也有对应的实现,所有的函数都是pthread打头,也就一百多个函数,不是很复杂。然而多线程编程被普遍认为复杂,主要是因为多线程给程序引入了一定的不可预知性,要控制这些不可预知性,就需要使用各种锁各种同步机制,不同的情况就应该使用不同的锁不同的机制。什么事情一旦放到多线程环境,要考虑的问
2017-11-07 14:56:26 2181 1
转载 编辑距离算法(Levenshtein distance)
概念编辑距离的作用主要是用来比较两个字符串的相似度的基本的定义如下所示:编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。这个概念是由俄罗斯科学家Vladim
2017-09-26 11:42:33 1035 1
转载 pthread读写锁pthread_rwlock_t
读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排他的,读可以有多个在读,写只有唯一个在写,同时写的时候不允许读。具有强读者同步和强写者同步两种形式强读者同步:当写者没有进行写操作,读者就可以访问;强写者同步:当所有写者都写完之后,才能进行读操作,读者需要最新的信息,一些事实性较高的系统可能会用到该所,比如定票之类的。读写锁的操作:读写锁的初始化:
2017-09-22 11:51:29 680
转载 memcpy、memmove、memset、strcpy的区别
memcpy函数原型:函数功能:memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数返回值指向dest的指针。不考虑内存重叠[cpp] view plain copy#include #include #include void* Memcpy(void
2017-09-21 20:55:40 299
转载 c++11内存模型详解一
关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果
2017-09-13 12:10:57 491
转载 linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)
rcprcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输。要使用rcp,需要具备以下条件:(1)如果系统中有/etc/hosts 文件,应确保该文件包含要与之进行通信的远程主机信息:internet_address official_name alias。例
2017-08-16 11:15:52 913
转载 TF-IDF模型的概率解释
信息检索概述信息检索是当前应用十分广泛的一种技术,论文检索、搜索引擎都属于信息检索的范畴。通常,人们把信息检索问题抽象为:在文档集合D上,对于由关键词w[1] … w[k]组成的查询串q,返回一个按查询q和文档d匹配度relevance(q, d)排序的相关文档列表D’。对于这一问题,先后出现了布尔模型、向量模型等各种经典的信息检索模型,它们从不同的角度提出了自己的一套解决方案。布
2017-07-31 15:40:04 595
转载 深入浅出TF-IDF模型
信息检索是当前应用十分广泛的一种技术,论文检索、搜索引擎都属于信息检索的范畴。在搜索引擎等实际应用中广泛使用的是tf-idf模型。1 TF-IDF模型tf-idf模型的主要思想是:如果词w在一篇文档d中出现的频率高,并且在其他文档中很少出现,则认为词w具有很好的区分能力,适合用来把文章d和其他文章区分开来。该模型主要包含了两个因素:词w在文档d中的词频tf(Term F
2017-07-31 10:38:50 6162
转载 谈谈C++中的swap函数
1,最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符。template void swap ( T& a, T& b ) { T c(a); a=b; b=c; } 需要构建临时对象,一个拷贝构造,两次赋值操作。2,针对int型优化:void swap(int & __restrict a, int & __restrict b) { a
2017-07-24 13:26:39 530
转载 C++ typename的起源与用法
侯捷在Effective C++的中文版译序中提到:C++的难学,还在于它提供了四种不同(但相辅相成)的程序设计思维模式:procedural-based, object-based, object-oriented, generics对于较少使用最后一种泛型编程的我来说,程序设计基本上停留在前三种思维模式当中。虽说不得窥见高深又现代的泛型技术,但前三种思维模式已几乎满足我所遇
2017-07-24 11:10:30 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人