自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 第一次把Epoll讲这么详细的文章

从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么? ...

2020-03-16 14:23:48 88 0

原创 linux内核详细

Linux内核的特点: 结合了unix操作系统的一些基础概念 转存失败重新上传取消 转存失败重新上传取消 Linux内核的任务: 1.从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。 2.从应用程序的层...

2020-03-09 14:20:49 63 0

原创 TCP需要了解的都在这

一.TCP相关机制 TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。 1.确认应答 在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一 个已收到消息的通知。这个消息叫做确认应答(ACK(Positive Acknowled-gement)意指...

2020-03-09 14:18:32 44 0

原创 Python3 Typing

typing模块的作用: 类型检查,防止运行时出现参数和返回值类型不符合。 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。 注意:typing模块只有在python3.5以上的版本中才可以使用,pycharm目前支...

2020-02-24 16:16:45 61 0

原创 netstat命令中state详解

State: 表TCP连接状态 ESTABLISHED指TCP连接已建立,双方可以进行方向数据传递 CLOSE_WAIT:这种状态的含义其实是表示在等待关闭。当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT...

2020-02-20 11:42:33 82 0

原创 查看端口是否有进程启动

当一个程序明明启动了,但是访问出错 或者程序明明没问题,却启动不了 一种方式是应该检查端口是否被占用, linux查看端口状况的命令: netstat netstat --tunlp netstat -aon 但是Mac系统这个命令不能用, 可以使用lsof lsof -nP ...

2020-02-20 11:36:54 80 0

原创 netstat命令详解

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。 netstat常用命令参数 1 2 ...

2020-02-20 10:47:48 55 0

原创 python协程及一些相关概念

【Coroutine】 Coroutine:协程,又称微线程,纤程。 协程的这种“挂起”和“唤醒”机制实质上是将一个过程切分成了若干个子过程,给了我们一种以扁平的方式来使用事件回调模型。优点:共享进程的上下文,一个进程可以创建百万,千万的coroutine。 python中的yield和第三方库...

2020-02-19 15:46:29 20 0

原创 【Mysql】Datetime和Timestamp区别,及mysql中各种时间的使用

说到数据库时间类型,大部分同学都会想到date、datetime、timestamp之类的。 我之前在项目遇到一个问题,测试同事在测试时,由于会测试205几年的数据,在入库时会抛出数据库异常,原因就是timestamp是有最大年份限制的。 下面先说说datetime与timestamp的区别:...

2020-02-17 17:35:44 28 0

原创 MySQL脏读、虚读、幻读

事务的特性: 原子性:指处于同一个事务中的多条语句是不可分割的。 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。 隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰 持久性:事务一旦提交,就应...

2019-08-05 10:21:40 104 0

原创 Django框架之中间件(MiddleWare)解析

当Django处理一个 Request 的过程是首先通过中间件,然后再通过默认的 URL 方式进行的。我们可以在 Middleware 这个地方把所有Request 拦截住,用我们自己的方式完成处理以后直接返回 Response。因此了解中间件的构成是非常必要的。 在django项目的set...

2019-06-24 16:15:03 716 0

原创 在django的View中使用asyncio(协程)和ThreadPoolExecutor(多线程)

Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 RuntimeError: There is no current event loo...

2019-06-20 10:20:39 1406 0

原创 pandas处理Excel

生成数据表 1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2、导入CSV或者xlsx文件: data =pd.read_csv(‘name.csv’,header=1) 默认读取第一...

2019-06-20 09:57:13 821 0

原创 缓存算法LRU和LFU比较

对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的...

2019-06-20 09:54:17 771 0

原创 同源策略,跨域,CORS

1、先来说说什么是源 • 源(origin)就是协议、域名和端口号。 以上url中的源就是:http://www.company.com:80 若地址里面的协议、域名和端口号均相同则属于同源。 以下是相对于http://www.a.com/test/index.html的同源检测 • http:/...

2019-04-22 15:15:27 185 0

原创 MAC npm install 权限问题报错

最近在进行mac 命令行安装软件的时候,有的时候会遇见这样的问题: 如下: npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules npm ERR! path /usr/local/lib/n...

2019-04-19 12:04:48 1575 0

原创 gevent的深入实践

Gevent是python的第三方库,提供了比较完善的对协程的支持。Python中GIL的存在,导致多线程一直不是很好用,相形之下,协程的优势就更加突出了。 Gevent的基本思想是:当遇到IO操作时,会自动写换到其他gevent,再在适当的时间切回来继续执行。这样就减少了IO操作时的等待耗时,从...

2019-04-19 09:58:59 187 0

原创 项目管理:十大领域,五大过程,44个定义

PMBOK五大过程组是什么? PMBOK五大过程组是:启动过程、规划过程、执行过程、监控过程、收尾过程。 各用一句话概括项目管理知识体系五大过程组: 1、启动过程组:作用是设定项目目标,让项目团队有事可做; 2、规划过程组:作用是制定工作路线,让项目团队“有法可依”; 3、执行过程组:作...

2019-04-17 14:23:41 1100 0

原创 Java泛型详细说明

1. 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 首先说下泛型的好处: A:把运行时期的问题提前到了编译期间 B:避免了强制类型转换 C:优化了程序设计,解决了黄色警告线问题,让程序更安全 然后我们继续往...

2019-04-17 11:09:10 58 0

原创 jdk1.5~jdk8新特性整理

JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言。今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性。希望能给予帮助。 JDK1.5新特性: 1.自动...

2019-04-16 15:24:13 70 0

原创 Java常用注解分类

JDK自带注解 @Override  重写,标识覆盖它的父类的方法 @Deprecated   已过期,表示方法是不被建议使用的 @Suppvisewarnings   抑制警告 元注解 @Target  表示该注解用于什么地方,可取的值包括: ElemenetType.CONSTR...

2019-04-16 14:43:58 185 0

原创 Java自定义注解

一、注解的基础 1.注解的定义:Java文件叫做Annotation,用@interface表示。 2.元注解:@interface上面按需要注解上一些东西,包括@Retention、@Target、@Document、@Inherited四种。 3.注解的保留策略:   @Retenti...

2019-04-16 14:27:51 43 0

原创 JAVA 8 Stream 总结

什么是Stream 首先要说的是,不要被它的名称骗了,这里的Stream跟JAVA I/O中的InputStream和OutputStream是两个不同的概念。Java 8中的Stream其实是函数式编程里Monad的概念,关于Monad,感觉还是比较抽象,不好理解,可以参考这篇文章,个人觉得还...

2019-04-09 18:21:52 76 0

原创 JAVA8新特性详解

前言:Java8 已经发布很久了,很多报道表明Java8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java 8 – Lambdas and Concurrency、Java 8 Date Time API T...

2019-03-28 10:40:55 36 0

原创 Java AOP开发模式@Aspect注解说明

2 注解说明 2.1 @Aspect 作用是把当前类标识为一个切面供容器读取 2.2 @Before 标识一个前置增强方法,相当于BeforeAdvice的功能,相似功能的还有 2.3 @AfterReturning 后置增强,相当于AfterReturningAdvice,方法正常退出...

2019-03-28 10:39:11 2398 0

原创 使用spawn expect创建快捷命令

安装tcl tclx tcl-devel yum install -y tcl tclx tcl-devel 安装expect yum install expect -y 创建文件ssh_quick.epr #!/usr/bin/expect if {$argc < 1}...

2019-03-28 10:36:05 108 0

原创 Java学习--spring AOP

spring提供了两个核心功能,一个是IoC(控制反转),另外一个便是Aop(面向切面编程),IoC有助于应用对象之间的解耦,AOP则可以实现横切关注点(如日志、安全、缓存和事务管理)与他们所影响的对象之间的解耦。 1.简介 AOP主要包含了通知、切点和连接点等术语,介绍如下 通知(Ad...

2019-01-17 16:10:07 56 0

原创 Java学习--spring原理

1、spring原理        内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。 ...

2019-01-17 16:08:22 136 0

原创 Django-Model操作数据库(增删改查、连表结构)

一、数据库操作 1、创建model表         基本结构 1 2 3 4 5 6 from django.db import models     class userinfo...

2017-08-31 10:36:58 1112 0

原创 django下载文件

基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django提供下载功能,如页面数据导出功能(下载动态生成的文件)、先检查用户权限再下载文件等。因此,有必要研究一下文件下载功能在Django中的实现。 最简...

2017-08-18 10:13:06 764 0

原创 golang web框架总结

我目前在用的是revel,感觉跟Django很像,功能齐全,配置方便 其他的有gin, echo, beego, gorilla 听说高效,文档齐全 还有martini等,也有特点,但是有缺陷, 有机会的时候可以多了解

2017-08-02 11:17:31 1406 0

原创 fibonacci数列的Python表示方法

Fibonacci数列为:0、1、1、2、3、5、8、13、21...... 数列第一项为0,第二项为1,从第三项开始,每一项为相邻前两项之和。 用递归的方法来定义: F(0) = 0 F(1) = 1F(n) = F(n-1) + F(n-2) , n>=2 用递归方法实现...

2017-07-27 14:09:27 2859 0

原创 Python 2.7.x 和 3.x 版本的重要区别小结

许多Python初学者都会问:我应该学习哪个版本的Python。对于这个问题,我的回答通常是“先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本。等学得差不多了,再来研究不同版本之间的差别”。 但如果想要用Python开发一个新项目,那么该如何选择Pyth...

2017-07-27 13:35:39 349 0

原创 自建博客对网页格式的处理汇总

如果要做成HTML的形式,推荐tinyMCE,可以直接处理富文本格式 做成markdown格式, 1,HyperMD (github地址) 2,markdownmce( github) 博客laobubu.net值得学习

2017-06-28 17:53:03 340 0

原创 golang时间格式化

golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-...

2017-06-21 14:21:13 36368 2

原创 golang实现的自动git pull

在测试的web项目里面添加了git版本库管理,然后通过golang命令自动执行git fetch和git merge命令,免去了烦人的操作和节省一些宝贵时间。 涉及两个文件: 1.conf配置文件,第一行是切换到该目录下,接着是git的命令顺序,一行一个命令,空行隔开多个版本库(请把后缀.tx...

2017-06-19 16:42:41 5392 0

原创 长短连接和长短轮询相关

一直认为,HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接。 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接。但是前半句是不对的,HTTP协议根本没有长短连接这一说。 网络上很多文章都是误人...

2017-05-19 10:23:35 369 0

原创 死锁与处理

在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等。在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个。这样,就会出现若干进程竞争有限资源,又推进顺序不当,从而构成无限期循环等待的局面。这种状态就是死锁。系统发生死锁现象不仅浪费大...

2017-05-16 13:58:43 311 0

原创 面向对象编程和面向协议编程

当苹果在 2015 年世界开发者大会上宣布 Swift 2 时, 他们也声明 Swift 是世界上第一个面向协议编程的语言。通过它的名字, 我们可能认为面向协议编程都是跟协议相关的; 然而, 这可能是一个错误的假定。面向协议编程不仅仅是关于协议; 实际上它不仅是编写程序的新方式, 也是我们思考编...

2017-05-16 13:33:35 572 0

原创 swift面向协议编程

Swift的核心 我们可以通过等式的传递性来理解swift: Swift的核心是面向协议的编程。 面向协议的编程的核心是抽象(abstraction)和简化(simplicity)。 所以swift的核心就是抽象和简化。 你 可能对我的标题感到诧异。我并不是...

2017-05-16 13:30:24 263 0

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