- 博客(31)
- 收藏
- 关注
原创 Linux平台下C++实现的新闻推荐系统
基本描述新闻推荐系统能够支持用户登录,注册,检索新闻,并根据登录用户的浏览记录进行新闻推荐。支持360浏览器,Chrome浏览器,IE浏览器,安卓手机浏览器,苹果手机浏览器的访问。部署在云服务器上,以守护进程的方式运行。主要分为5个模块:l 爬虫模块使用python的Scrapy框架爬取新浪新闻网页存储到MySQL数据库中,爬取的过程中使用结巴分词对标题进行关键词过滤,便于后期的推荐和检索。l ...
2018-06-13 16:26:00
1195
原创 如何证明多线程下用c调用python的时候,python会定期切换出当前的线程,释放GIL
如何证明多线程下用c调用python的时候,python会定期切换出当前的线程,释放全局锁,然后换给其他线程执行。基本思路:在调用的python函数中,让这个函数睡眠2秒钟,此时这个线程拿到了GIL,按理说应该等这个线程函数睡足了2秒钟才切换到下一个线程。import timedef my_pFun(a, l): print "a = : " + str(a) print str...
2018-06-07 21:36:27
881
原创 Linux的多线程下使用c/c++调用Python方法示例
首先,所有python的函数都是用extern "C"定义的,因此对于C和C++,其使用是一样的。c语言调用python必须要有的API(不管有没有多线程):PyRun_SimpleString //执行一句python代码PyImport_Import //导入python模块PyModule_GetDict //从python模块中获取dict,//因为python一个模块就是一个命名空间...
2018-06-07 19:44:41
2344
原创 linux下使用gdb调试多线程——以条件变量为例
多线程的调试比较麻烦,在linux下我们可以使用gdb来对多线程进行调试。gdb基本的使用不做介绍了。这里说一下使用gdb调试多线程的几种常用的辅助命令:1. info threads: 显示当前可调试的线程,gdb会给每一个线程分配一个ID,ID前面带“*”的表示是当前被调试的线程2. thread ID:调试目标ID指定的线程3. set scheduler-locking [off | on...
2018-05-21 15:43:31
1079
原创 数据库索引原理
一、索引的基本概念数据库中文件系统的索引类似于书的目录,如果希望了解一本书的某个主题,可以通过目录中的该主题的关键词找到对应的页数,然后读取这些页,获取信息。数据库中的索引的工作原理是根据索引,查找相应记录所在的磁盘块,然后取出磁盘块,得到相应的记录。总的来说,数据库的索引有两种基本类型:1. 顺序索引。基于值的顺序排序(b+树也属于这个范畴)2. 散列索引。将值平均分布到
2018-01-24 10:21:24
1689
原创 数据库系统概念之数据的存储(顺便复习一下操作系统)
一、关于磁盘的基本知识1、磁盘的物理特性 磁盘每一个盘片是扁平的圆盘,上面覆盖有磁性物质,信息就记录在这上面。盘片的表面划分成磁道,磁道又划分成扇区,扇区是磁盘读出和写入信息的最小单位。现在磁盘扇区大小一般为512字节,每一个盘面有50000-100000条磁道,每个磁盘有1-5个盘面,是同轴布置的。磁盘的读写头安装在一个磁盘臂上,当一个盘片的读写头在第i条磁道时,其他盘片的读写头也都在各
2018-01-23 14:48:13
1972
原创 MySQL的内部联结,外部联结(左联结,右联结),自然联结
一、SELECT语句一个典型的SQL查询语句具有如下形式:SELECT A1,A2, ... ,AnFROM r1, r2, ... ,rmWHERE P;select子句列出查询结果中所需要的属性。from子句是一个查询求值中需要访问的关系列表。where子句是一个作用在from子句关系属性上的谓词。其中from这个子句定义的是一个在该子句中列出的关系上的笛卡尔积
2018-01-11 21:29:22
5977
5
原创 windows 下 使用stanford parser的方法
一、下载stanford ParserStanford Parser的下载地址:https://nlp.stanford.edu/software/stanford-parser-full-2017-06-09.zip下载之后解压就ok了。二、java的安装和配置首先下载JDK。下载地址:点击打开链接。下载之后安装,配置环境变量。测试是否配置成功。命令行输入:java -v
2018-01-08 16:13:38
1884
1
原创 muduo网络库:线程之间的同步机制(使用eventfd函数,条件变量,线程池)
muduo网络库:线程之间的同步机制(使用eventfd函数,条件变量,线程池)
2017-11-28 10:44:16
1191
原创 【深入理解计算机系统笔记】Linux 下 程序的链接过程
根据面向对象守则,数据应该尽可能被封装,类中成员函数和friend函数的封装性要比非成员函数的封装性低。为什么呢?这是因为越少的代码能够访问对象内的数据,那么越多的数据能够被封装,我们也能够越能自由地改变对象的数据,这样一旦改变成员数据的话能够将其他的改动变的最低。 非成员函数和非友元函数能够实现较大的封装性,这是因为它们的存在并不增加能够访问class中private成员的数量。 假设有一个类
2017-08-01 20:37:12
589
原创 【effetive C++ 笔记 】条款23:宁以non-member, non-friend替换member函数
根据面向对象守则,数据应该尽可能被封装,类中成员函数和friend函数的封装性要比非成员函数的封装性低。为什么呢?这是因为越少的代码能够访问对象内的数据,那么越多的数据能够被封装,我们也能够越能自由地改变对象的数据,这样一旦改变成员数据的话能够将其他的改动变的最低。 非成员函数和非友元函数能够实现较大的封装性,这是因为它们的存在并不增加能够访问class中private成员的数量。 假设有一个类
2017-08-01 11:30:11
564
原创 关于变量的一些笔记
一、局部变量和全局变量从空间角度,也就是作用域角度,变量可以分为局部变量和全局变量。 1.局部变量 是在一个函数内部定义的变量,只能在本函数范围内有效。 2全局变量 是在函数外定义的变量,也叫外部变量。主要作用是增加函数之间的数据联系渠道,如果一个函数改变了全局变量的值,就能够影响到其他函数,使其他函数中引用的同名变量也同时改变。 全局变量要尽量避免。因为它有一些缺点:占用全局数据区。在
2017-07-27 17:02:06
400
原创 在一组序列中查找两个元素的和等于给定的值(快排+两端扫描实现)
在一组序列中查找两个元素的和等于给定的值(快排+两端扫描实现)题目描述:输入一个值Num,在一组序列中查找两个元素,若他们之和等于输入的值,则将他们挑选出来。比如:{7,2,9,47,22,32,12,6,11,15}序列,输入14,则输出2和11。先将数组排序:{2,6,7,9,11,12,15,22,32,47},然后从i=0,j=9,i从前向后扫描,j从后向前扫描,如果两
2017-03-14 19:55:32
1032
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人