自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Linux平台下C++实现的新闻推荐系统

基本描述新闻推荐系统能够支持用户登录,注册,检索新闻,并根据登录用户的浏览记录进行新闻推荐。支持360浏览器,Chrome浏览器,IE浏览器,安卓手机浏览器,苹果手机浏览器的访问。部署在云服务器上,以守护进程的方式运行。主要分为5个模块:l  爬虫模块使用python的Scrapy框架爬取新浪新闻网页存储到MySQL数据库中,爬取的过程中使用结巴分词对标题进行关键词过滤,便于后期的推荐和检索。l ...

2018-06-13 16:26:00 1085

原创 如何证明多线程下用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 783

原创 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 2128

原创 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 983

原创 数据库索引原理

一、索引的基本概念数据库中文件系统的索引类似于书的目录,如果希望了解一本书的某个主题,可以通过目录中的该主题的关键词找到对应的页数,然后读取这些页,获取信息。数据库中的索引的工作原理是根据索引,查找相应记录所在的磁盘块,然后取出磁盘块,得到相应的记录。总的来说,数据库的索引有两种基本类型:1. 顺序索引。基于值的顺序排序(b+树也属于这个范畴)2. 散列索引。将值平均分布到

2018-01-24 10:21:24 1571

原创 数据库系统概念之数据的存储(顺便复习一下操作系统)

一、关于磁盘的基本知识1、磁盘的物理特性 磁盘每一个盘片是扁平的圆盘,上面覆盖有磁性物质,信息就记录在这上面。盘片的表面划分成磁道,磁道又划分成扇区,扇区是磁盘读出和写入信息的最小单位。现在磁盘扇区大小一般为512字节,每一个盘面有50000-100000条磁道,每个磁盘有1-5个盘面,是同轴布置的。磁盘的读写头安装在一个磁盘臂上,当一个盘片的读写头在第i条磁道时,其他盘片的读写头也都在各

2018-01-23 14:48:13 1867

原创 MySQL的内部联结,外部联结(左联结,右联结),自然联结

一、SELECT语句一个典型的SQL查询语句具有如下形式:SELECT A1,A2, ... ,AnFROM r1, r2, ... ,rmWHERE P;select子句列出查询结果中所需要的属性。from子句是一个查询求值中需要访问的关系列表。where子句是一个作用在from子句关系属性上的谓词。其中from这个子句定义的是一个在该子句中列出的关系上的笛卡尔积

2018-01-11 21:29:22 5653 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 1662 1

原创 c++中的智能指针

shared_ptr, weak_ptr, unique_ptr, 内存管理

2017-12-13 10:20:41 361

原创 反转链表:迭代和递归的实现

反转单链表,用迭代和递归来实现

2017-12-09 16:10:03 416

原创 动态规划解决leetcode中的House Robber问题

House Robber,leetcode, 动态规划

2017-12-09 09:56:12 601

原创 muduo网络库:线程之间的同步机制(使用eventfd函数,条件变量,线程池)

muduo网络库:线程之间的同步机制(使用eventfd函数,条件变量,线程池)

2017-11-28 10:44:16 1068

原创 初识muduo:实现一个echo服务器

muduo安装,编译,echo为例

2017-11-13 18:29:27 1464 2

原创 Redis命令的请求和执行过程

Redis命令的请求和执行过程及源码剖析

2017-11-09 11:31:30 1325

原创 Redis事件处理及源码剖析

Redis事件处理集源码剖析

2017-11-07 15:41:13 628

原创 Redis过期键删除策略及源码剖析

Redis过期键删除策略及源码剖析

2017-11-03 11:34:38 919

原创 进程控制

进程控制的一些函数,如fork()函数 waitpid()函数 getpid()函数 execve()函数

2017-10-21 15:39:29 651

原创 从地址空间看进程和线程

从地址空间看进程和线程

2017-10-20 21:53:10 6813

原创 Z字形编排问题(Zigzag)的一种更简单的实现

Z字形编排问题(Zigzag)的一种更简单的实现

2017-10-18 17:17:03 4721 2

原创 Redis中AOF持久化

Redis中AOF持久化

2017-09-30 11:33:24 401

原创 Redis中RDB持久化

Redis中的RDB持久化

2017-09-29 17:32:16 432

原创 Redis数据库底层数据结构设计

Redis数据库底层数据结构设计—数据库的存储方式

2017-09-27 21:42:40 1526

转载 C语言volatile关键字

C语言volatile关键字

2017-09-22 11:25:37 686

原创 【深入理解计算机系统】TINY Web 服务器的搭建

TINY Web 服务器的搭建

2017-08-29 17:03:04 3689 3

原创 使用Pyspider 框架爬取全球的注册公司列表

使用Pyspider 框架爬取全球的注册公司列表

2017-08-07 16:51:48 1435

原创 【effective C++笔记】C++ 中explicit 关键字

C++ 中explicit 关键字

2017-08-02 11:29:05 408

原创 【深入理解计算机系统笔记】Linux 下 程序的链接过程

根据面向对象守则,数据应该尽可能被封装,类中成员函数和friend函数的封装性要比非成员函数的封装性低。为什么呢?这是因为越少的代码能够访问对象内的数据,那么越多的数据能够被封装,我们也能够越能自由地改变对象的数据,这样一旦改变成员数据的话能够将其他的改动变的最低。 非成员函数和非友元函数能够实现较大的封装性,这是因为它们的存在并不增加能够访问class中private成员的数量。 假设有一个类

2017-08-01 20:37:12 527

原创 【effetive C++ 笔记 】条款23:宁以non-member, non-friend替换member函数

根据面向对象守则,数据应该尽可能被封装,类中成员函数和friend函数的封装性要比非成员函数的封装性低。为什么呢?这是因为越少的代码能够访问对象内的数据,那么越多的数据能够被封装,我们也能够越能自由地改变对象的数据,这样一旦改变成员数据的话能够将其他的改动变的最低。 非成员函数和非友元函数能够实现较大的封装性,这是因为它们的存在并不增加能够访问class中private成员的数量。 假设有一个类

2017-08-01 11:30:11 492

原创 关于变量的一些笔记

一、局部变量和全局变量从空间角度,也就是作用域角度,变量可以分为局部变量和全局变量。 1.局部变量 是在一个函数内部定义的变量,只能在本函数范围内有效。 2全局变量 是在函数外定义的变量,也叫外部变量。主要作用是增加函数之间的数据联系渠道,如果一个函数改变了全局变量的值,就能够影响到其他函数,使其他函数中引用的同名变量也同时改变。 全局变量要尽量避免。因为它有一些缺点:占用全局数据区。在

2017-07-27 17:02:06 347

原创 Scrapy爬取当当网的商品信息存到MySQL数据库

scrapy框架爬取当当商品信息并保存到MySQL数据库。

2017-07-26 16:21:53 2852 3

原创 在一组序列中查找两个元素的和等于给定的值(快排+两端扫描实现)

在一组序列中查找两个元素的和等于给定的值(快排+两端扫描实现)题目描述:输入一个值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 955

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除