zoukankan      html  css  js  c++  java
  • 数据安全(锁) :用来保证数据安全

    如果多个进程同时对一个文件进行操作会出现什么问题

    # 1.读数据 : 可以同时读
    # 2.写数据 : 但不能同时写
    

    from multiprocessing import Process,Lock
    def change(lock):
    print('一部分并发的代码,多个进程之间互相不干扰的执行着')
    lock.acquire() # 给这段代码上锁
    with open('file','r') as f:
    content = f.read()
    num = int(content)
    num += 1
    for i in range(1000000):i+=1
    with open('file','w') as f:
    f.write(str(num))
    lock.release() # 给这段代码解锁
    print('另一部分并发的代码,多个进程之间互相不干扰的执行着')

    if name == 'main':
    lock = Lock()
    for i in range(10):
    Process(target=change,args=(lock,)).start()

    当多个进程同时操作文件/共享的一些数据的时候就会出现数据不安全

    开启多进程 同时执行100000行代码

    其中20行涉及到了操作同一个文件

    只给这20行代码枷锁,来保证数据的安全

  • 相关阅读:
    混杂模式
    消息队列学习
    item21
    消息队列改写
    socket select模型
    EffectiveC++ Item11
    How to read a PCap file from Wireshark with C++
    winsock select学习
    线程安全与可重入函数
    process explorer 查看句柄或者加载的dll
  • 原文地址:https://www.cnblogs.com/python25/p/11578669.html
Copyright © 2011-2022 走看看