4yue 22

1

# 1 . 进程  线程  协程  之间的相同点和不同点
#相同点:都能帮助我们实现并发操作,规避IO时间,提高执行效率
    #进程:内存隔离  操作系统级别 可以利用多核(高计算)                        计算机中资源分配的最小单位
    #线程:内存共享  操作系统级别 开销中 Cpython解释器下不能利用多核(规避IO)          计算机CPU调度的最小单位
    #协程:内存共享  用户级别     开销小 不能利用多核(协程的本质是个单线程)(规避IO)
'''
操作系统级别:全世界的人都存储在大计算机上,他都知道哪个好那个坏
用户级别:  自己去判断哪个好哪个坏  switch 是手动添加的  gevent 里为什么没有? 因为他在底层添加了(可能是if)
'''
# 为什么不能删GIL锁
    #垃圾回收机制  所以  cpython

# 2  .进程内存之间是否共享,如何实现通信?
#不共享 通过python模块\第三方工具
# 本质上:
    #  基于文件 :
        #队列 管道  manager
    # 基于网络
        #第三方工具(redis kafka  memcha)  socket

# 3在python 中是否线程安全
    #不安全
    #python 你写的python代码未来都会转换成机器码,机器码执行的过程中
    #如果有一个非原子性操作,那么就会导致线程数据不安全
    #需要手动加锁来解决问题

# 4 协程的本质是什么
    #多个任务在一个线程上能够实现切换 (与IO无关利用协程实现的一个效果)

#5 线程池开启任务  如何提交任务 获取返回值
'''
from concurrent.futures import ThreadPoolExecutor             #这个模块开启线程池
def func(arg):
    return arg*20
tp = ThreadPoolExecutor(5)
ret_l = []
for i in range(100):
    ret = tp.submit(func,i) #这个是一个对象
    ret_l.append(ret)
for r in ret_l :
    print(r.result())       #打印
'''
#
'''
from concurrent.futures import ThreadPoolExecutor             #这个模块开启线程池
def func(arg):
    return arg*20
tp = ThreadPoolExecutor(5)
ret = tp.map(func,range(100))
for r in ret :
    print(r)        # 没有返回值 直接打印
    
'''
#协程复习:
#数据是否安全     :   绝对安全
#  用户级别的  只能在代码上做 没法 swithch a+=1   swithch  没有把a+=1 分开
a = 1
def func1():
    global a
    a+= 1
def func2():
    global a
    a+=1
import dis

dis.dis(func1)
dis.dis(func2)

#和线程的关系
    #本质上是一条线程
# gevent 模块
    #g1 = spawn(协程函数,参数)
    #g1.join    #主程序里不遇到阻塞,不切到子程序里(一个协程)  start没有用不执行
        # gevent.joinall(iterable([g1]))
    #monkey.patch_all()

#  greenlet  switch
# 并没有减少IO操作

'''
def fun1():
    start
    sleep       # 其实是自己实现了一个sleep,而没有用time的
    end
def fun2():
    begin
    sleep1
    finish
'''
# socket 底层就是用thread实现的

#  举一反三  做了一个  想象把他换成别的情境
# 问题
    # 协程用的好 比线程的效率要好的多
    # 协程的底层 IO切换  是 time
    # 先把懂了的整理出来  再弄不懂得

2

#day 1 数据库的介绍安装 命令
#day 2 数据库的表操作
#day 3 数据库的数据操作,查询(单表\多表)  一天  ftp这几天  要做完
#day 4 查询和其它内容的拾遗
# day 5 索引原理

# 数据库在开发的过程中占据着什么样的位置?
#在整个项目中又有什么意义?

# 我们把数据存储在文件里 (把数据永远存下来)
        #写  write
        #读  read
        # 改  读-》写->删->改-》
# 数据库:(意义)
# 能够更加简单的   使用 存储在文件中的数据
    # 查 一行数据  从userinfo  条件 id = 10 或者 id = 20
            #简单  比那一行 要简单
        #不止读写改 还优化了效率(?为什么 没听清 not listened)
# 能够更好地解决并发问题
        #买票问题   你是为你的用户服务的  但是对于 数据库 你也是服务端
                    #python 中到处都是相对论
        #自带的并发  不用自己写server
# 数据的统一问题

# 1,alex,alex3714  #一行内容就是一条数据
# 2,python,19800,6,months  # 一条不同的数据



# 数据库  DataBase 简称DB
# 存储数据的地方, 我们把所有的数据都存储在一个固定的地方,那么这个地方就是数据库

#数据库管理系统 DBMS
        #软件 需要我们安装一下
            #能够帮助我们更好的管理
            #和使用存储在硬盘上的数据
        #操作系统
        #硬盘上存储着数据

# 数据库 服务器
    #什么是服务器 : 本质上就是一条计算机  (对外提供服务)
                    #当一台计算机上安装了某个人软件能够对外提供服务的时候,那么这台机器就成为服务器
    #数据库服务器
            #当这台机器上安装的服务是一个数据库的server ,就得到了一个。。。。

    #数据库管理软件:管理-数据库
    # 数据库管理员DBA
                # (删库的人  有权限。。。)
        #专门帮我们管理数据库 并且优化数据库的工作人员
# 数据库 技术的发展
    #纸 上表格
    #excel
    #软件  批处理   软件:(把你频繁的要做的变成机器去做了)

# mysql 就是一个DBMS(能够管理硬盘上数据的一个软件)
        # 通过固定的简单的指令 帮助我们完成从文件中查找对应数据的软件
                #mysql不好用,自己写,程序员的责任  好用就算了 不想用别的找不到缺点
                #软件那个没有缺点,就像人一样,一秒变笨,改错则少
                        #无知才会求知 有错才会改错
                        #笨才会求聪明
        #oracle 也是一个DBMS

# 数据库 管理系统的作用
    #关系型数据库         (mysql\oracle\sql server(微软里的底层服务) \sqllite)
            #(关系比较紧)                        # 这几个用法都差不多 都是传上去 拉下来 不同的相同的
                # (每个每个都对应 肯定慢)
        #id  name age phone_num
        #是有关系的 彼此之间
                #知道了一个人的名字能不能获取到他的年龄,
                #知道了一个人的电话号码,能不能获取到姓名

    #非关系型数据库        (redis\ mongodb)
                                #既可以完成通信也可以。。。   mon智能机器人(选修第四个)轻量级
                #(效率高  1对多 )
            #key : value  key---> value   只知道value找不到key
                        #只有一个找所有

# mysql  开源的软件   -小公司 各种互联网公司(二次开发之后)
    #开源  可能有的漏洞  被人操作了
    #很多地方不如oracle 严谨
    #金融公司 不会使用mysql存储数据的 。。。数据库被泄露了  只就是一个数字了。。。
#oracle  付费的
    #金融行业(绝对安全)
    #国企事业单位
#sql server  在学校里教学使用的

传的话 可能会出错,不要相信任何人的软件 从官网上安装最安全

以后进公司

3员工系统

        #写一个员工管理软件

#1,alex,38,1233333333,过气网红讲师
#2,wusir,74,1388888888,python讲师
# 查name,id  从   userinfo 条件 age = 83
# 查number,  从   userinfo 条件 name = 'wusir'

# 自己去处理文件  很复杂?

猜你喜欢

转载自www.cnblogs.com/Doner/p/10749170.html
22
yue