进程相关内容

一、基于多进程实现并发的套接字通讯,完成以下功能:
一、客户端连接功成功后,先登陆,登陆成功后才能够执行其余功能
二、登陆成功后能够执行下载功能
三、登陆成功后能够执行上传功能python

2.什么是互斥锁 
 
    顾名思义,相互排斥,一人使用,其余人不能使用。
    锁其实就是给执行代码加上限制,本质上是一个标志为True,False

1用来解决什么问题?  
当并发的操做共享资源发生的数据安全问题
2解决问题的原理是什么? 
将访问共享资源的代码由并发变为串行
3与join是的区别是什么?
join:------
    join是让整个进程任务全都串行
    join是固定死任务的执行顺序
mutex------
    锁能够仅将部分代码变为串行
    锁-多进程之间仍是公平竞争的
3.编写模拟抢票代码  分析总结什么时候会出现数据错乱
from multiprocessing import Process,Lock
import json

def show():
    with open("db.json")as f:
        data=json.load(f)
        print('剩余票数',data['count'])
def buy():
    with open("db.json")as f:
        data=json.load(f)
        if data['count']>0:
            data['count']-=1
            with open("db.json",'wt')as f2:
                json.dump(data,f2)
                print('抢票成功')
def task(mutex):
    show()
    mutex.acquire()
    buy()
    mutex.release()
if __name__ == '__main__':
    mutex=Lock()
    for i in range(5):
        p=Process(target=task,args=(mutex,))
        p.start()
#什么时候会错乱
环境:
    前提给的票数限制越少,越会出现问题
    一张票出现并发的话,被多人抢到,出现实际多人了是同一张
    json读码出问题,wt写入清空,在写入的同时,另外一方由于速度快,读入又写入,致使甲方失败
    在读入的时候不改变,在buy的进程中先后加锁后,限制了买的过程当中的读入,保证安全
    show仍是能够并发,buy加锁串行-----读写分开

1两个进程同时在写的时候确定会出问题
2写的进程正在进行,你读的进程又来了

​ 4.进程队列是什么 有什么特色编程

是一种特殊的容器
特色是先进先出
5.进程间通信有哪些方法说明优缺点
1共享文件
    优势:数据量理论上没有限制
    缺点:效率低
    适用于:交互不频繁,且数据量较大状况
    
2共享内存(主要方式)
    优势:效率高
    缺点:数据量不能太大
    适用于:交互频繁,交互量小
3管道:
    管道是基于文件的,它是单向的,百年城比较复杂
4socket
    编程复杂,更适用于基于网络交换数据
相关文章
相关标签/搜索