- 博客(84)
- 收藏
- 关注
转载 133 MySQL单表查询
目录 一、单表查询 1.1 语法 1.2 关键字优先级 1.3 注意(重点) 1.4 测试一个单表的distinct去重 二、表记录查询测试 2.1常用函数 2.2 数据准备 2.3 表记录...
2019-09-25 23:42:00 150
转载 134 MySQL多表查询
目录 一、连表查询 二、一对多的表关系 2.1 数据准备 2.2 笛卡尔积的概念 2.3 内连接 2.4 左连接 2.5 右连接 2.6 左右连接可以转换 2.7 全连接 三...
2019-09-25 23:42:00 141
转载 131 MySQL支持的数据类型
目录 一、整型 1.1 类型 1.2 约束 1.3 实例 二、浮点型 2.1 类型 2.2 宽度 2.3 实例 2.4 浮点数数据类型重点 三、字符串 ...
2019-09-23 21:39:00 130
转载 132 MySQL表的完整性约束
目录 一、表的完整性约束目的 二、not null 2.1 not null 实例 2.2 default 2.3 not null + default实例 2.4 not null 不生效 三、auto_incremen...
2019-09-23 21:39:00 170
转载 130 MySQL记录操作
目录 一、记录介绍 二、插入数据(insert) 2.1 语法 2.2 使用 三、更新数据(update) 3.1 语法 3.2 使用 四、删除数据(delect) 4.1...
2019-09-22 20:45:00 78
转载 128 MySQL数据库基本操作
目录 一、库的基本操作 二、数据库的模式 一、库的基本操作前提:连接上数据库以后创建数据库采用默认编码集:create database db1(数据库名):自定义编码集:create database db1 charset='utf8'查看数据库全部信息纵观所有数据库:s...
2019-09-22 20:44:00 101
转载 129 MySQL表操作
目录 一、表介绍 二、创建表 2.1 语法 2.2 建表 三、数据库表创建的完整语法 四、表中插入数据 4.1 语法 4.2 插数据 五、查看表的结构 5....
2019-09-22 20:44:00 134
转载 126 数据库的卸载安装连接
目录 一、卸载mysql 二、安装 三、启动连接数据库 四、退出数据库两种方式 一、卸载mysql前提:启动终端,输入mysql时,如果不是提示,‘不是内部或外部命令’,那就是代表已经安装了数据库了卸载步骤1.直接连入搜索:开启服务,检索mysql...
2019-09-22 20:43:00 67
转载 127 连接数据后的基本操作
目录 一、用户信息查看 二、修改root管理用户的密码 三、数据库配置 3.1为什么要进行编码配置 3.2 编码配置后的结果 3.3 配置流程 四、登录数据库后,创建用户操作 4.1为特定的数据库分配该数据库的操作权限的用户...
2019-09-22 20:43:00 135
转载 124 IO模型
一、IO模型介绍回顾:同步、异步、阻塞、非阻塞同步: 指的是协同步调。既然叫协同,所以至少要有2个以上的事物存在。协同的结果就是:多个事物不能同时进行,必须一个一个的来,上一个事物结束后,下一个事物才开始。异步:就是步调各异,就是多个事物,你进行你的,我进行我的,谁都不用管谁,所有的事物都在同时进行中总结:同步就是多个事物不能同时开工,异步就是多个事物可以同时开工。阻塞:由于执...
2019-09-22 20:42:00 92
转载 125 Mysql数据库基础
目录 一、认识数据库 1.1 数据库介绍 1.2 什么是数据库 2.3数据库的组成 二、数据库的分类 2.1 关系型数据库和非关系型数据库 2.2 内存与硬盘 2.3 sql与nosql ...
2019-09-22 20:42:00 73
转载 122 python程序中的线程操作-concurrent模块
一、concurrent模块的介绍concurrent.futures模块提供了高度封装的异步调用接口ThreadPoolExecutor:线程池,提供异步调用ProcessPoolExecutor:进程池,提供异步调用ProcessPoolExecutor 和 ThreadPoolExecutor:两者都实现相同的接口,该接口由抽象Executor类定义。二、基本方法sub...
2019-09-22 20:41:00 107
转载 123 协程基础
一、线程、进程回顾在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。并发的本质:切换+保存状态。cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间过长。在介绍进程理论时,提及进程的三种执行状态,而线程才是执行单位,所以也可以将上图理解为线程的三种状态。其中并发并不能提...
2019-09-22 20:41:00 58
转载 120 python程序中的线程操作-锁
一、同步锁1.1 多个线程抢占资源的情况from threading import Thread,Lockx = 0def task(): global x for i in range(200000): x = x+1 # t1 的 x刚拿到0 保存状态 就被切了 # t2 的 x拿到0 进行+1 1...
2019-09-22 20:40:00 113
转载 121 python程序中的线程操作-队列queue
一、线程队列queue队列:使用方法同进程的Queue一样如果必须在多个线程之间安全地交换信息时,队列在线程编程中尤其有用。重要:q.put():往队列里面放值,当参数block=Ture的时候,timeout参数将会有作用,当队列已经满了的时候,在往里面放值时,block为True程序将会等待timeout的时间,过了时间程序会报错,block如果为Flase时,程序不会等待直...
2019-09-22 20:40:00 192
转载 119 python程序中的线程操作-守护线程
一、守护线程无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。对主进程来说,运行完毕指的是主进程代码运行完毕对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕1.1 详解主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后...
2019-09-22 20:39:00 101
转载 118 python程序中的线程操作-创建多线程
一、python线程的模块1.1 thread和threading模块thread模块提供了基本的线程和锁的支持threading提供了更高级别、功能更强的线程管理的功能。1.2 Queue模块Queue模块允许用户创建一个可以用于多个线程之间共享数据的队列数据结构。1.3注意模块的选择避免使用thread模块因为更高级别的threading模块更为先进,对线程...
2019-09-22 20:37:00 138
转载 117 GIL全局解释器锁
一、GIL全局解释器锁cpython中自带的GIL全局解释器,GIL本身就是一把互斥锁重点:因为有了GIL全局解释器锁,导致了在同一进程的同一时刻只有一个线程在执行,无法利用多核优势其实就算我们在程序中写了一个线程的并行操作,实际上GIL会因为垃圾回收机制的问题,操作系统调度的问题,会把并行的线程还是变成了串行,这正是这个GIL全局解释器锁导致了同一进程的同一时刻只有一个线程在运行...
2019-09-22 20:36:00 110
转载 115 进程和线程的区别
一、进程和线程的关系线程与进程的区别可以归纳为以下4点:地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。调度和切换:线程上下文切换比进程上下文切换要快得多,开启线程的速度要比开启进程的速度要...
2019-09-22 20:35:00 113
转载 116 进程和线程的使用场景
一、多进程的使用计算密集型的执行任务中:推荐使用多进程原因:充分利用cpu的多核优势,并行的去计算二、多线程的使用IO密集型的执行任务中:推荐使用多线程原因:开启线程的时间比开启进程的时间要块的多,并且没开启进程还需要开辟一个新的内存空间如果我这个任务又很多很多次IO的话,我要用进程的话,我还要开辟新的内存空间,这就造成了资源的浪费线程开启不需要重新开辟内存空间,并且线...
2019-09-22 20:35:00 89
转载 114 线程的概述
一、线程概念的引入背景1.1 进程之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。这是这样的设计...
2019-09-22 20:33:00 48
转载 113 python程序中的进程操作-进程间数据共享(multiProcess.Manger)
一、进程之间的数据共享展望未来,基于消息传递的并发编程是大势所趋即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。以后我们会尝试使用数据库来解决现在进程之间的数据共享问题。1.1 Man...
2019-09-22 20:32:00 105
转载 112 python程序中的进程操作-进程之间进行通信(mulitiProcessing Queue队列)
一、进程间通信IPC(Inter-Process Communication)IPC机制:实现进程之间通讯管道:pipe 基于共享的内存空间队列:pipe+锁的概念--->queue二、队列(Queue)2.1 概念-----multiProcess.Queue创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。Queue(...
2019-09-22 20:32:00 394
转载 111 python程序中的进程操作-多进程同步(mulitProcessing Lock锁)
通过学习,我们使用各种方法实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制。尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。一、锁的基础使用1.1多个进程抢占数据资源from multiprocessing import Process...
2019-09-22 20:31:00 267
转载 110 python程序中的进程操作-开启多进程
之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快。以我们之前所学的知识,并不能实现创建进程这个功...
2019-09-22 20:30:00 132
转载 108 同步异步阻塞和非阻塞
一、状态介绍在了解其他概念之前,我们首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行/运行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。...
2019-09-22 20:29:00 63
转载 109 进程的创建和结束
一、进程的创建但凡是硬件,都需要有操作系统去管理,只要有操作系统,就有进程的概念,就需要有创建进程的方式,一些操作系统只为一个应用程序设计,比如微波炉中的控制器,一旦启动微波炉,所有的进程都已经存在。而对于通用系统(跑很多应用程序),需要有系统运行过程中创建或撤销进程的能力,主要分为4中形式创建新的进程:系统初始化(查看进程linux中用ps命令,windows中用任务管理器,前...
2019-09-22 20:29:00 73
转载 107 进程的并发和并行
一、进程的并行和并发并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU )并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A ,交替使用,目的是提高效率。二、并行和并发的区别并行是从微观上,也就是在一个精确的时间片刻,有不同的程序在执行,这就要...
2019-09-22 20:28:00 86
转载 106 进程的调度
要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法。一、先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业,而不利于I/O繁忙型的作业(进程)。...
2019-09-22 20:27:00 61
转载 105 进程概述
一、什么是进程?1.进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。2.正在进行的一个过程或者说一个任务,每个进程在内存中使用的数据彼此是物理级别的隔离3.进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。进程(Process)是计算机中的程序关于某数据集合上的一次运行活动...
2019-09-11 19:37:00 66
转载 104 操作系统的发展史
一、第一代计算机(1946年)1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。利用真空管和插线板真空管在我们运行操作计算机的时候容易烧掉,就是破损掉采用手工操做——穿孔卡片程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数...
2019-09-11 19:36:00 277
转载 103 基于socketserver实现并发的socket编程
目录 一、socketserver模块 1.1 源码分析总结: 二、基于TCP协议 二、基于UDP协议 一、socketserver模块基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环socketserver模块中分两大...
2019-09-11 19:35:00 97
转载 101 解决粘包问题
目录 一、什么是粘包 二、tcp发送数据的四种情况 三、struct模块 四、解决粘包问题 4.1 简单版解决方案 4.1 终极版解决方案(xc版本) 一、什么是粘包粘包问题是所有语言中都会有的问题,因为只...
2019-09-11 19:34:00 90
转载 102 基于UDP协议的socket套接字
目录 一、基于UDP协议的socket套接字编程 1.1 用法 1.2 udp协议的特点 1.3 实例 一、基于UDP协议的socket套接字编程socket套接字包括使用TCP协议和UDP协议进行通讯1.1 用法socket指定使用...
2019-09-11 19:34:00 93
转载 100 模拟ssh远程执行命令
目录 一、subprocess模块 1.1 使用方法 二、模拟实现SSH远程执行命令 服务器 客户端 一、subprocess模块subprocess 模块允许你去创建一个新的进程让其执行另外的程序,并与...
2019-09-11 19:33:00 130
转载 098 网络基础知识
目录 一、C/S架构和B/S架构 1.1 C/S架构 1.2 B/S架构 二、计算机网络模型 2.1 OSI七层模型 2.2 因特网五层模型 三、介绍五层模型中各层作用 物理层 ...
2019-09-11 19:32:00 77
转载 099 基于TCP协议的socket
目录 一、什么是Socket 二、套接字发展史及分类 2.1 基于文件类型的套接字家族 2.2 基于网络类型的套接字家族 三、套接字工作流程 3.1 服务端套接字函数 3.2 客户端套接字函数 3.3 公共...
2019-09-11 19:32:00 66
转载 097 单例模式
一、什么是单例模式整个过程中只有一个实例,所有生成的实例都指向同一块内存地址空间二、为什么要用单例模式当实例化多次得到的对象中存放的属性都一样的情况,应该将多个对象指向同一个内存,即同一个实例这样可以节省内存空间二、实现单例模式的四种方式1.通过类的绑定方法来实现也就是通过类的静态方法来实现name = 'xichen'age = 18class Mydi...
2019-09-11 19:31:00 93
转载 096 元类
一、什么是元类在python里面,我们都知道一切都是对象我们用calss关键字定义一个类出来,那这个类肯定也就是一个对象。那这个类肯定又是由另一个类实例化的来的,负责产生这个对象的类就称之为是元类产生类的类叫做元类元类:简称为类的类二、如何去找元类type是一个内置的元类,所有的类都是由type实例化得到的,产生类的类,叫元类type的实例就是type,并且它还继承了...
2019-09-03 23:05:00 52
转载 095 选课系统
代码https://github.com/yuxing-chen/project/tree/select_course_sys项目要求作业要求角色:学校、学生、课程、讲师要求:1. 创建北京、上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 管理员创建学校 ,老师,课程4. 课程包含课程名称...
2019-09-02 21:16:00 60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人