mysql数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。选择合适的数据字段的类型是数据库的优化重要的一步。 合适的数据类型可以提高数据库存储空间利用率,一定程度上提高数据查询效率. 1.整形
线程及GIL全局锁
进程在启动时,仅仅是在内存空间中申请了一块自己的空间,而线程才会被cpu执行。 线程 进程和线程都是虚拟单位,进程为资源单位,线程是执行单位 当我们创建一个进程时也会相应的创建一个线程,进程被执行时,cpu执行的其实是进程里面的线程,线程指的就是代码的执行过程,执行代码中所需要使用到的资源都向所在的
常见的IO模型
合理的处理IO可以提高系统的处理速度,提高CPU的利用率 通讯中主要包括网络IO和从内核拷贝数据到线程中,内核拷贝到线程中速度很快,因此IO一般在网络中。 网络IO 模型主要包括: blocking IO 阻塞IO nonblocking IO 非阻塞IO IO multiplexing IO多路复
python中常见的锁
通过锁可以保证线程与进程的安全 死锁与递归锁 死锁:当一个线程或者进程抢到了一把锁,且执行下一步的操作时,还需要一把锁,但是这把锁被另外一个进程或者线程拿到了,那么就会出现死锁现象。 死锁示例: from threading import Thread, Lock import time mut
gevent实现协程
协程这个概念在操作系统中是不存在的,但是可以通过协程的理念实现单线程内并发的效果。 协程可以实现单线程内的并发效果,不需要锁,通过协程可以!提高CPU的利用率。 实现方法:通过yield字段,在yield执行时,可以保存当前的函数的状态,然后再执行另外一个函数。 ---yeild 关键字的使用(廖雪
进程与python模块的使用——multiprocess、queue
程序是硬盘中的代码,进程则是程序正在运行状态的抽象 通过进程和线程的切换,可以最大程度的提高cpu的利用率。让程序更快的获取执行结果。 程序是硬盘中的代码,进程则是程序正在运行状态的抽象。 进程的调度算法 先来先服务(FCSC):对长作业有利,对短作业无利 短作业优先调度算法(SPN):对短作业有利
python基础-基于tcp/ip、udp的Scoket使用
操作系统封装了应用层下的OSI协议并抽象出了Sokcet,让应用层的通讯不用关心底层的实现。 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是操作系统封装完下层协议后封装出来的一组接口。 基于tcp/ip的Scoket使用 通过基于tcp/ip的socket可以进行internet上
python标准库-socketserver的使用
python内置的socket单独是使用时不直接支持并发的,socketserver将socket模块和select模块进行了封装,可以使服务端更方便的处理socket请求。 socketserver是python标准库的模块之一,使用方法: 创建一个请求处理类,继承BaseRequestHandl
编程基础--tcp/ip协议(2)
三次握手与四次挥手就在这里发生。 TCP协议的三次握手和四次挥手在面试中经常会被问到!在一般的web开发中很少使用到,了解tcp可以更清楚的知道你的应用中,数据是如何传输的。 TCP协议 TCP协议的实现在OSI5层协议的传输层。TCP 协议可以保证数据通信的完整性和可靠性,还可以防止丢包。 TCP
编程基础--tcp/ip协议(1)
互联网通讯的多个协议,他们之间不互影响。通过组合成为了计算机间通讯的基础。 osi 5层协议 1. 物理层 将电脑通过硬件连接起来,主要传输1、0信号