day37-多路利用I/O模型、mysql基本概念(含上节课复习)

上节课复习:
1、协程
    什么是?
        协程指的是单线程下由应用程序级别实现的并发
        即把本来由操作系统控制的切换+保存状态,在应用程序里实现了

    协程的切换 vs 操作系统的切换
    优点:
        切换速度远快于操作系统
    缺点:
        一个任务阻塞了,其余的任务都无法执行

ps:只有遇到I/O才切换到其他任务的协程才能提升
        单线程的执行效率

为何用?
    把单个线程的I/O降到最低,最大限度地提升单个线程的执行效率

如何实现?
    from gevent import monkey,spawn;monkey.path_all()

2、I/O模型

    block I/O
    nonblocking I/O
        1、对CPU的无效占用率过高
        2、不能即时反馈客户端的信息

多路复用IO模型

服务端:
from socket import *
import time,select    #select模块:

server=socket(AF_INET,SOCK_STREAM)
server.bind(('127.0.0.1',8080))
server.listen(5)
server.setblocking(False)

data_dic={}
read_list=[server,]  #一开始会含有server的套接字
write_list=[]    #针对在read_list中有数据的套接字进行写的操作
print('start......')
while True:
    rl,wl,xl=select.select(read_list,write_list,[])    #read_list=[server,conn1,conn2,conn3,conn4]
    # print('read_list:%s rl:%s wl:%s ' %(len(read_list),len(rl),len(wl))) #rl=[conn1,conn2]
    for sk in rl:
        if sk == server: #如果rl中有server就进行三次握手连接
            conn,addr=sk.accept()
            read_list.append(conn)
        else:
            # sk.recv(1204)
            # print(sk)
            data=sk.recv(1024)
            write_list.append(sk)
            data_dic[sk]=data
    for sk in wl:
        sk.send(data_dic[sk].upper())
        data_dic.pop(sk)
        write_list.remove(sk)

客户端:
from socket import *
import os

client=socket(AF_INET,SOCK_STREAM)
client.connect(('127.0.0.1',8080))

while True:
    msg='%s say hello' %os.getpid()
    client.send(msg.encode('utf-8'))
    data=client.recv(1024)
    print(data.decode('utf-8'))

mysql基本概念

1、数据库是什么?
    数据库本质就是一个C/S的套接字软件
    常见的数据库:
        关系型:
                   Mysql、mariadb(等同于mysql)、oracle、db2、sqlserver
      非关系:
                   存取数据都是以key:value、mongodb、redis、memcache

2、数据库相关概念
    数据库服务器:运行有数据库管理软件的计算机
    数据库管理软件mysql:就是一个套接字服务端
    库:就是一个文件夹
    表:就是一个文件
    记录:就相当于文件中的一行内容(抽取事物一系列典型的特征拼到一起)
   数据:用于记录现实世界中的某种状态

如果字符编码不一致时,用下图的命令来进行修正,[mysqld],[mysql],[client]分别指定不同的服务端或者是客户端的位置:

猜你喜欢

转载自blog.csdn.net/qq_17513503/article/details/81104489