随笔分类 -  python

摘要:pymysql 对MySQL数据库进行简单数据操作python模块主要是:MySQLdb、pymsql,MySQLdb模块主要用于python2.X,而python3.X则使用pymsql,pymysql的使用方法和MySQLdb几乎一样,习惯用MySQLdb的,只需 import MySQLdb 阅读全文
posted @ 2017-12-21 01:26 Wilson_Blogs 阅读(1808) 评论(0) 推荐(0)
摘要:MySQL简介、安装、操作 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存 阅读全文
posted @ 2017-12-20 02:21 Wilson_Blogs 阅读(387) 评论(0) 推荐(0)
摘要:Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key 阅读全文
posted @ 2017-12-19 19:22 Wilson_Blogs 阅读(1044) 评论(0) 推荐(0)
摘要:RabbitMQ RPC模型 RPC(remote procedure call)模型说通俗一点就是客户端发一个请求给远程服务端,让它去执行,然后服务端端再把执行的结果再返回给客户端。 1、服务端 2、客户端 3、输出 服务端: 客户端: 阅读全文
posted @ 2017-12-18 01:07 Wilson_Blogs 阅读(886) 评论(0) 推荐(0)
摘要:RabbitMQ RabbitMQ Publish\Subscribe(消息发布\订阅) 1对1的消息发送和接收,即消息只能发送到指定的queue里,但这样使用有些局限性,有些时候你想让你的消息被所有的Queue收到,类似广播的效果,这时候就要用到exchange了 Exchange在定义的时候是有 阅读全文
posted @ 2017-12-17 18:30 Wilson_Blogs 阅读(1880) 评论(0) 推荐(0)
摘要:RabbitMQ 队列消息持久化 假如消息队列test里面还有消息等待消费者(consumers)去接收,但是这个时候服务器端宕机了,这个时候消息是否还在? 1、队列消息非持久化 服务端(producer): 客户端(consumers): 上面的服务端和客户端声明queue的方式都是非持久的 ①服 阅读全文
posted @ 2017-12-15 20:36 Wilson_Blogs 阅读(3397) 评论(1) 推荐(0)
摘要:RabbitMQ MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列中的消息。RabbitMQ是MQ产品的典型代表,是一款基于AMQP协议可复用的企业 阅读全文
posted @ 2017-12-14 17:48 Wilson_Blogs 阅读(1057) 评论(0) 推荐(0)
摘要:IO多路复用(select、poll、epoll)介绍及select、epoll的实现 IO多路复用中包括 select、pool、epoll,这些都属于同步,还不属于异步 一、IO多路复用介绍 1、select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来 阅读全文
posted @ 2017-10-30 23:02 Wilson_Blogs 阅读(5016) 评论(1) 推荐(2)
摘要:事件驱动介绍 一、前言 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求 上面的几种方式,各有千秋, 第 阅读全文
posted @ 2017-10-17 20:57 Wilson_Blogs 阅读(1391) 评论(0) 推荐(2)
摘要:协程介绍及基本示例 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是协程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局 阅读全文
posted @ 2017-10-16 21:52 Wilson_Blogs 阅读(1667) 评论(0) 推荐(0)
摘要:多进程 进程之间是相互独立的,python是启动进程的时候,是启动的是原生进程。进程是没有GIL锁的,而且不存在锁的概念,进程之间的数据式不能共享的,而线程是可以的。 1、进程的定义 用muliprocessing这个包中的Process来定义多进程,跟定义多线程类似 2、进程中加入线程 3、父子进 阅读全文
posted @ 2017-10-12 15:53 Wilson_Blogs 阅读(3714) 评论(0) 推荐(0)
摘要:队列(Queue) 在多个线程之间安全的交换数据信息,队列在多线程编程中特别有用 队列的好处: 一、队列的类型: 1、lass queue.Queue(maxsize=0) 先进先出,后进后出 2、class queue.LifoQueue(maxsize=0) 是先进后出,后进新出规则,last 阅读全文
posted @ 2017-10-10 10:51 Wilson_Blogs 阅读(5032) 评论(0) 推荐(1)
摘要:信号量(Semaphore) 之前讲的线程锁(互斥锁) 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。 1、信号量 说白了就是在同一时间,可以只允许设定的数量的线程去执行 上面程 阅读全文
posted @ 2017-09-28 14:39 Wilson_Blogs 阅读(2623) 评论(0) 推荐(0)
摘要:GIL锁 计算机有4核,代表着同一时间,可以干4个任务。如果单核cpu的话,我启动10个线程,我看上去也是并发的,因为是执行了上下文的切换,让看上去是并发的。但是单核永远肯定时串行的,它肯定是串行的,cpu真正执行的时候,因为一会执行1,一会执行2.。。。。正常的线程就是这个样子的。但是,在pyth 阅读全文
posted @ 2017-09-27 16:24 Wilson_Blogs 阅读(3597) 评论(0) 推荐(1)
摘要:继承式多线程 1、定义 继承式多线程是自己自定义类,去继承theading.Tread这个类,通过类实例.start()启动,去执行run方法中的代码。 2、通过for循环来启动线程 上面的例子只启动了一个2个线程,还是用那种古老的方式t1,t2。要是一下子起10个或者100个线程,这种方式就不适用 阅读全文
posted @ 2017-09-26 12:06 Wilson_Blogs 阅读(1273) 评论(0) 推荐(0)
摘要:进程与线程 一、概念 1、简述: 计算机,所有的指令的操作都是有CPU来负责的,cpu是来负责运算的。OS(操作系统) 调度cpu的最小单位就是线程。程序启动后,从内存中分一块空间,把数据临时存在内存中,因为内存比较快,内存比磁盘快,而CPU又比内存还要快很多。进程之前的的内存是不能访问的,默认是要 阅读全文
posted @ 2017-09-08 11:03 Wilson_Blogs 阅读(357) 评论(0) 推荐(0)
摘要:socketserver SocketServer服务端内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理多个客户端请求。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进 程” 专门负责处理当前客户端的所有请求。 一、sockets 阅读全文
posted @ 2017-09-06 11:14 Wilson_Blogs 阅读(816) 评论(0) 推荐(0)
摘要:上一篇随笔:“socket 接收大数据”,在win系统上能够运行,并且解决了大数据量的数据传输出现的问题,但是运行在linux系统上就会出现如下图所示的情况: 就是服务端两次发送给客户端的数据(第一次发送是时准备发送数据的字节大小,第二次是数据内容)粘在一起了,这是socket中的粘包: 查看服务端 阅读全文
posted @ 2017-09-04 19:41 Wilson_Blogs 阅读(758) 评论(0) 推荐(0)
摘要:Socket接收大数据 上一篇博客中的简单ssh实例,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区中,这样就会造成我们想要获取数据的完整性。 解决思路: 1、改大客户端接收的数据的大小,因为官方建议最多只能接收8k的数据,那服务端发送过 阅读全文
posted @ 2017-08-31 17:00 Wilson_Blogs 阅读(10212) 评论(1) 推荐(0)
摘要:socket socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递。 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外提供服务,如果 把一个公司比做一台电脑 阅读全文
posted @ 2017-08-24 15:30 Wilson_Blogs 阅读(546) 评论(0) 推荐(0)