自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夜夜夜夜

生命不息,奋斗不止!

原创 从网卡到应用层nginx,一个数据包经历了什么?

内容目录数据包从网卡到nginx从网卡到内存内存-网络模块-协议栈传输层应用层nginx处理socket套接字的流程下面进入nginx http请求处理的11个阶段处理请求的过程 数据包从网卡到nginx 本文将研究一个数据包从被网卡接收到流出应用层到底经历了什么,并探究在应用层nginx的处理流...

2018-11-07 20:07:12 1542 0

原创 N皇后问题的c++解法

N皇后问题: 国际象棋中皇后的势力范围覆盖其所在的行、列以及两条对角线,现在考察如下问题:如何在n x n的棋盘上放置n个皇后,使得她们彼此互不攻击 对于任何整数:n>=4,这就是n皇后问题。我们常说的8皇后问题也就是n为8的时候 首先,讲一讲思路,大致思路就是:我们把n个皇后分别放在...

2017-05-05 13:04:33 8042 0

原创 tornado框架的学习与应用

简单介绍一下所使用的高并发框架tornado,它是一个用python编写的可扩展的非阻塞式web服务器及其相关工具的开源框架,在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。 先简单介绍一下 用tornado实现的经典helloworl...

2017-05-02 21:33:34 3116 0

原创 libev源码解读

1、源码: 源码参见官网或者我的github上 2、安装使用: 安装与基本使用参见我的另一篇博客:传送门 3、架构 Libev通过一个 struct ev_loop结结构表示一个事件驱动的框架。在这个框架里面通过ev_xxx结构,ev_init、ev_xxx_set、ev_xxx_sta...

2016-12-23 17:06:02 2521 0

原创 几种典型的服务器网络编程模型归纳(select poll epoll)

1、同步阻塞迭代模型 同步阻塞迭代模型是最简单的一种IO模型。其核心代码如下:bind(srvfd); listen(srvfd); for(;;) { clifd = accept(srvfd,...); //开始接受客户端来的连接 read(clifd,buf,...); /...

2016-12-17 10:52:17 7758 5

原创 Python3爬虫实战:爬取大众点评网某地区所有酒店相关信息

历时一下午加一晚上,终于把这个爬虫代码写好,后面还有很多想完善的地方(譬如数据存储用redis、使用多线程加快速度、爬取图片、细分数据等等),待有空再做更改,下面是具体的步骤与思路: 工具:PyCharm、Google Chrome开发者工具、fiddle2 一、进入大众点评首页默认的地区是上海地...

2016-04-13 21:32:13 16262 121

原创 Python 正则re模块之compile()和findall()详解

下面是Python3.5官方文档里关于的compile的说明: re.compile(pattern, flags=0) Compile a regular expression pattern into a regular expression object, which can be used...

2016-04-12 16:41:13 80137 1

原创 python闭包与装饰器

在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。 ——维基百科 def make_printer(msg): ...

2019-05-17 15:29:15 99 0

转载 Linux源码编译三步曲,分别发生了什么

目录configuremakemake install configure configure脚本生成makefile文件,提供给make工具使用 执行configure脚本时,configure会结合用户通过命令行指定的选项以及各个Makefile.in模板文件来生成makefile文件 co...

2018-11-09 00:32:16 284 0

转载 四层负载均衡与七层负载均衡的区别

https://zhuanlan.zhihu.com/p/34904010 https://www.jianshu.com/p/9826d866080a 现有的负载均衡分层 所谓四层负载均衡就是使用IP加端口的方式进行路由转发;七层负载均衡一般是基于请求URL地址的方式进行代理转发。同理,还有...

2018-11-08 16:14:32 340 0

原创 使用python批量导入csv、excel、txt格式文件到oracle数据库(python3x)

平时在工作中,往往需要把一些文件导入到数据库中使用,或者当操作系统打不开比较大的文件(譬如几个G的文件 windows就很难打开了)的时候,也可以利用数据库,方便的读取大文件中的数据。下面简单介绍下我平时使用的方法: 1、相对较小的文件,使用python open该文件,再逐条取出数据,导入...

2018-08-23 17:52:39 4593 0

转载 oracle merge into的用法

对一张表,在不同的条件下实现不同的操作(update/insert),在 oracle 中可以用 merge into /////////////// 有一个表T,有两个字段a、b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在T中插入一条记录。在Micro...

2018-06-29 11:21:10 362 0

转载 Anaconda使用指南

一、为什么选择Anaconda? 1.1 什么是 Anaconda?Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。1.2 什么是 conda ?conda 是开源包(packages)和虚拟环境(environment)的管理...

2018-01-03 15:11:18 2737 0

转载 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

Spring Tool Suite: 报错信息The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path 好久不写Jsp,今天建立了一个Javaweb工程,并在eclipse中配置了We...

2017-08-23 14:57:12 628 0

转载 PyQt5 与PyQt4的区别

1、不与 PyQt4 兼容 2、不再对Python老版本提供支持(Python 2.6 之前) 3、不再实现PyQt4不推荐的API接口PyQt5 不支持任何在PyQt4版本中标记为不推荐或舍弃的Qt API(如果有就会当Bug处理) 4、不再提供多版本API接口PyQt4 支持多版本的AP...

2017-08-17 09:49:34 3703 1

转载 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

JavaWeb: 报错信息The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path 好久不写Jsp,今天建立了一个Javaweb工程,并在eclipse中配置了Web容器Tomcat。...

2017-08-09 09:31:00 310 0

转载 c++程序编译过程

编译主要分为4个过程: 预处理-编译优化-汇编-链接 1) 编译预处理 预编译程序完成的工作,可以说成是对源程序的“替换”工作。经过这个过程,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。 宏定义命令;例如#define 条件编译指令;例如#ifdef 头文件包含指令;...

2017-08-07 11:02:24 291 0

转载 spring mvc架构

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 ...

2017-08-07 10:51:51 1002 0

原创 c++11:static_assert 与assert

assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。assert分为动态断言和静态断言2种。c++0x引入了static_assert关键字,用来实现编译期间的断言,叫静态断言。 语法...

2017-08-04 17:20:35 1915 0

翻译 其他语言无法比拟的Python特性

Python有着丰富精巧的功能和技巧,会让你惊叹“哇!Python这么酷”。 下面看看python特有的一些brilliant的特性: 1、生成器 生成器是产生一个值的序列的对象,它可以用作迭代器,也就是可以用于for语句,或者用于next函数中来得到下一个值。 含有yield关键字的函数...

2017-08-01 14:44:16 358 0

原创 博客嵌入音乐播放器

1、从网易云音乐找一首歌,譬如: http://music.163.com/#/song?id=4325063452、点击“生成外链播放器”3、复制iframe插件下面的html代码,粘贴到你的博客文本中即可 譬如复制:<iframe frameborder="no"...

2017-08-01 09:23:57 1280 0

转载 JS和JSP的区别

最近很多同学在纠结于名词缩写之间的相似性,因此本人也来写一篇,讲讲JS和JSP的区别。SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JS...

2017-07-28 17:50:03 456 0

转载 windows下配置tomcat8.5

先说jdk的安装,因为tomcat运行需要: JDK下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装JDK:直接安装即可 配置系统变量: 变量名:JAVA_H...

2017-07-28 16:52:13 2827 0

转载 python增强的格式化字符串format函数

自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。语法: 它通过{}和:来代替%。映射示例:通过位置In [1]: '{0},{1}'.forma...

2017-07-25 09:19:29 222 0

原创 基于pyqt5+python3.4的简单界面小程序demo

任务: 今天有一个需求,是每天统计出参加银联扫码活动的商家信息,主扫的交易笔数,总金额,被扫的交易笔数,总金额,以及主扫+被扫的统计信息。 分析:首先要做个程序,每天跑一下就生成结果文件,或者直接显示出结果。涉及到的有: 1、使用cx_oracle查询,获取数据,数据存入本地文件或者显示到u...

2017-07-21 15:41:58 880 0

转载 oracle存储过程语法与使用

oracle 存储过程的基本语法1.基本结构   1 CREATE OR REPLACE PROCEDURE 存储过程名   2 IS   3 BEGIN   4 NULL;   5 END;行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracl...

2017-07-11 18:50:04 802 0

转载 从关系型数据库到非关系型数据库

最近在做cups海量数据的分析工作,遇到了大数据方面关系型数据库的种种不便,很简单的非关系型查询,在oracle等关系型数据库中都变的很麻烦,所以在大数据来临的时代,还是要学习nosql数据库的,这篇文章就介绍从关系型数据库到非关系型数据库的转变。简单来说,关系模型指的就是二维表格模型,而一个关系...

2017-07-11 18:12:50 283 0

转载 where、having的用法与区别

1.where和having都可以使用的场景select goods_price,goods_name from sw_goods where goods_price > 100select goods_price,goods_name from sw_goods having goods_...

2017-07-07 10:04:13 591 0

原创 为oracle数据库新增表空间及用户

什么是表空间? 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。 创建用户的时候需要指定默认表空间和temp表空间,主要是为了当该用户创建对象不指定表空间时使用默认表空间来存储对象, 而temp表空间是用户执...

2017-07-03 18:26:44 555 0

原创 python3脚本使用sql loader批量导入字节文件并二次处理

由于使用cx_oracle连接oracle然后导入数据文件速度太慢(要导的数据有几百G),出于速度的考虑,选择了oracle自带的sql loader工具,使用python脚本写界面,与用户交互,然后使用system()去批量调用sql loader,对于导入失败的bad数据以及日志数据,我用了c...

2017-07-03 14:46:55 2386 0

转载 c++构造函数的初始化列表

与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。 例如:struct foo { string name ; int id ; foo(string s, int i):name(s),...

2017-06-30 17:25:00 1162 0

原创 关于“ORA-01653:表xxx无法通过8(在表空间SYSTEM)扩展

今天把cups海量数据导入到新建的oracle数据库中的时候,出现了RT的错误,上网查查才知道是表空间数据太大了,达到默认最大32G了,所以需要给system表空间增加数据文件来扩充其,具体解决步骤如下: 1、查询所有表空间使用情况 使用DBA权限登陆,执行:SELECT UPPER(F.TA...

2017-06-28 15:49:22 7093 0

原创 window批处理脚本学习使用:.bat .cmd文件编写

背景:由于之前用python写的数据库导数据的程序略慢,而cups要导入的数据又很多很多,考虑到时效的要求,准备用oracle自带的sql loader把海量数据导入,编写好sql loader的控制文件(一种导入规则文件)之后,在cmd下执行命令:sqlldr ora_name/ora_pass...

2017-06-26 18:24:01 1852 0

原创 说说多线程(linux、windows/c c++ mfc python java多线程)

一直在使用多线程,也学习过很多linux线程进程方面的知识(APUE UNP),有mfc里包装好的多线程,有python程序里的多线程,但是没有好好归纳过,现在好好整理归纳下关于多线程的知识。 关于多线程、多进程,参考:多进程、多线程以及如何选择? 关于线程同步(互斥)的方式与对比,参考:线程...

2017-06-23 18:55:06 1465 0

原创 ORA-27101: shared memory realm does not exist

今天使用oracle sql developer连接远程数据库服务器后,又建立了一个连接,连接下本地的服务器,但是连接失败了,之后从本地sql plus登陆数据库时,出现:ORA-27101: shared memory realm does not exist的错误提醒,解决后特在此分享该方法:...

2017-06-23 14:34:57 2113 0

转载 锁的种类与特点

在Linux内核中,同步机制是一大特性。比较经典的有原子操作、spin_lock(自旋锁)、mutex(互斥锁)、semaphore(信号量)等。 互斥锁和自旋锁的区别?

2017-06-21 20:08:49 3845 0

转载 MySQL与Oracle数据类型对照表

最近在把cups的mysql数据库渐渐转为使用oracle数据库,难免遇到很多数据类型转换的问题,具体细节还要实践验证

2017-06-21 12:51:16 1148 0

原创 线程同步常用方式与区别

在介绍线程同步/互斥之前,我们先要理解同步与互斥的概念,引用书上的解释来说明这2个概念: 1、线程(进程)同步的主要任务 在引入多线程后,由于线程执行的异步性,会给系统造成混乱,特别是在急用临界资源时,如多个线程急用同一台打印机,会使打印结果交织在一起,难于区分。当多个线程急用共享变量,表格,...

2017-06-20 14:02:12 4821 0

转载 多进程、多线程以及如何选择?

关于线程: 首先关于多线程多进程,看一张图: 基本上把线程,进程区别说清楚了提到线程,就不得不提线程同步的问题,我专门归纳了一篇文章: 线程同步常用方式与区别线程2个性质, 线程安全:概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的...

2017-06-19 19:54:40 794 0

转载 c++:尽量用new/delete代替malloc/free

在C语言中,我们已经熟悉利用malloc/free来管理动态内存,而在C++中,我们又有了新的工具:new/delete。你不禁会产生疑问—有了malloc/free为什么还要new/delete 呢?使用malloc/free和使用new/delete又有什么区别呢?首先来分析一下下面的代码片段...

2017-06-19 19:19:30 929 0

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