03 2020 档案
摘要:字符集及数据类型 一、字符集 字符集是对SQL语句编码风格的一种标准规范,如果没有统一的字符集,SQL语句在使用的过程中就会混乱。 查询所有的字符集:show charset; 数据库刚建之初的字符集编码格式是latin1,现在在中国使用的数据库主流字符集是utf8或者utf8mb4,少量会使用gb
阅读全文
摘要:磁盘分区挂载与swap分区扩充 一、磁盘分区 虚拟机新建磁盘需要先关闭虚拟机,再添加虚拟磁盘 查看磁盘信息:fdisk l,获取新建的磁盘名 设定磁盘分区: 开始设置:fdisk /dev/新建磁盘名 新建分区:n 选择分区类型:p/e,p是主分区,可以设置四个,e是扩展分区,从最后一个主分区中扩展
阅读全文
摘要:mysql安装和配置 一、卸载rpm自带的mysql版本 检查是否安装mysql:rpm qa | grep mysql 检查是否安装了mariadb:rpm qa | grep mariadb 卸载:rpm e xxx 强制卸载(普通卸载不成功的情况下):rpm e nodeps xxx 注意:在
阅读全文
摘要:池和回调函数 使用线程池和进程池的原因: 减少时间:在池中可以提前开几个线程线程不关闭,程序运行的时候可以直接使用线程,减少线启动和关闭的时间。 减少开销:有大量程序需要处理的时候如果使用多线程去处理,那么会需要开启很多的线程,如果超出CPU+1的数量,那么会造成程序执行效率低下。 但是如果使用线程
阅读全文
摘要:线程间队列通信 线程间通信用到的队列和进程间的通信队列不同,进程中的队列是在multiprocessing模块中封装的,从该模块导入即可,但是线程间的通信队列需要单独导入queue模块,threading模块中没有封装。 Queue: 导入:import queue 这个可以用于服务行业,先进先出
阅读全文
摘要:多线程中的锁问题 在多线程同步使用的时候存在数据的不安全问题,python解释器在底层添加了GIL全局解释器锁机制来控制锁的安全问题,但不是绝对的安全。在日常的开发中还需要开发者添加锁机制在代码中。 一、多线程之间的数据安全问题 (一)、 '+='、' ='、' ='、'/='、if语句和while
阅读全文
摘要:线程基础 一、线程和进程的区别 进程: 进程之间数据隔离,每一个进程分配一块内存 进程可以使用多核处理,操作系统调度 进程是资源计算机资源份分配的最小单位 进程有数据不安全的问题,需要用到锁和信号量 进程之间本身无法通信,但是可以使用第三方模块和工具来实现通信IPC 队列:基于socket、pick
阅读全文
摘要:队列和生产者消费者模型 一、队列Queue模块 用于IPC:进程之间的通信,具有同样功能的还有Manager模块 进程之间的通信可以用到的是队列、管道Pipe和第三方工具 队列是基于socket、pickle和锁来实现的,因为基于锁来实现,所以队列中的数据传输一定是安全的,但传输效率会有所损耗。 管
阅读全文
摘要:进程池和回调函数 一、管道 管道是多进程之间通信的一种方式,它是不安全的。 导入管道: from multiprocessing import Pipe con1, con2 = Pipe() 单进程中使用管道: 情形一:con1收数据,con2发数据 情形二:con1发数据,con2收数据 多进程
阅读全文
摘要:锁 一、使用锁的原因: 在进程的执行过程中,进程的执行顺序完全由CPU来调度和安排,没有固定的顺序,windows中会首要执行主进程,但是其他的操作系统在调度的时候不分主进程和子进程。为了使进程可以有序的调度必须使用锁机制。 二、锁机制下的情形: 情形一:当进程拿到钥匙后,开锁使用资源,在使用期间这
阅读全文
摘要:信号量 信号量和锁机制基本是类似的,都是为了让资源的分配和进程的调度更加的有序,但是和锁机制不同的是:锁机制一次只能获取一把钥匙,信号量一次可以获取多把钥匙,数量可以设定。 基本的流程: 导入模块:from multiprocessing import Semaphore 实例化信号量对象:se =
阅读全文
摘要:事件 导入模块:from multiprocessing import Event 实例化事件对象:e = Event() 事件是通过is_set()的bool值,去标识e.wait()的阻塞状态 当is_set()的bool值为False时,e.wait()是阻塞状态 当is_set()的bool
阅读全文
摘要:git学习笔记 一、安装与基本配置 安装: 登陆git官网查找合适的版本安装,或者通过命令行安装,以linux为例:sudo apt get/yum install git 基本配置: 方式一:全局配置 git config global user.name 'yourname' git confi
阅读全文
摘要:进程 一、基础 进程三态状态转换图: 注意: 栈是一种数据的存储方式,基本的特点是先进后出,具有这种特点的统称为栈。 计算机中栈的一般大小是几个兆,如果希望拿出先进的数据,必须把它后进的数据全部取出之后才能拿出需要的数据。 每个进程都有自己的堆和栈,但是具体的大小是受操作系统影响的。如果不是人为的干
阅读全文
摘要:操作系统基本原理 计算机的基本介绍 五大硬件: 主板:固化(寄存器,是直接和cpu进行交互的一个硬件) CPU:中央处理器:计算(数字计算和逻辑计算)和控制(控制所有的硬件协调工作) 存储:硬盘、内存 输出设备 输入设备 早期计算机以计算为核心,现代计算机以存储为核心 操作系统 操作系统是一个可以操
阅读全文
摘要:转载自linux公社:https://www.linuxidc.com/Linux/2019 08/159900.htm 问题:MySQL提示ERROR 1698 (28000): Access denied for user 'root'@'localhost'错误解决办法
阅读全文
摘要:socketserver内置模块 socketserver模块是一个内置模块,主要解决的是socket只能一对一, 不能多对多通信的问题,设置在服务端,不是客户端。 基本格式为: 导入:import socketserver 创建类class Mysocket(socketserver.BaseRe
阅读全文
摘要:struct模块的使用 pack和unpack用法是主要用于解决TCP协议的产生的粘包问题 pack用法: pack是把输入的数值打包成为4个字节的长度,无论数值多少,pack后的结果都是4个字节,这样可以先把文件的长度确定下来,通过打包把长度传递过去,通过长度来接收文件。 格式: l_s = st
阅读全文

浙公网安备 33010602011771号