美文网首页Python作业
Day20 数据安全

Day20 数据安全

作者: 风月辞寒 | 来源:发表于2019-08-19 20:19 被阅读0次

一.线程间数据共享

数据的存储跟线程无关; 一个进程中的数据在多个线程中可以直接用
情况1: 在子线程中使用主线程中的数据

list1 = [10, 20, 30]


def func1():
    list1.append(100)


def func2():
    list1[0] = 'hello'


t1 = Thread(target=func1)
t2 = Thread(target=func2)
t1.start()
t2.start()

t1.join()
t2.join()
print(list1)

情况2: 在子线程中使用子线程中的数据

list1 = [10, 20, 30]


def func1():
    global list1
    list1 = [1, 2, 3]


def func2():
    t = Thread(target=func1)
    t.start()
    print(list1)


t1 = Thread(target=func2)
t1.start()

二.数据共享安全问题以及锁的使用

获取锁对象
获取数据
操作完成后
释放锁对象

注意: 使用锁的时候保证一个数据对应一把锁

from time import sleep
from threading import Thread, Lock


class Account:
    """银行账号"""
    _card_num = 0

    def __init__(self, name, tel, balance, bank='建设银行'):
        self.bank = bank
        self._card_num += 1
        self.name = name
        self.tel = tel
        self.balance = balance
        self.lock = Lock()      # 1.创建锁

    def save_money(self, amount):
        # 获取余额
        print('=========开始存钱!============')
        # 2.使用锁
        self.lock.acquire()
        # 存钱
        bl = self.balance
        print('余额:%s' % bl)
        sleep(4)
        self.balance += amount
        # 3.释放锁
        self.lock.release()
        print('存钱:{}, 余额:{}'.format(amount, self.balance))
        print('========存钱结束!==========')

    def draw_money(self, amount):
        print('=======开始取钱!=========')
        self.lock.acquire()
        bl = self.balance
        print('余额:%s' % bl)
        sleep(10)
        if bl < amount:
            print('余额不足!!!')
            print('======取钱结束======')
            return
        self.balance -= amount
        self.lock.release()
        print('取钱:{}, 余额:{}'.format(amount, self.balance))
        print('========取钱结束========')


account = Account('xh', '12345', 10)

t1 = Thread(target=account.save_money, args=(5,))
t2 = Thread(target=account.draw_money, args=(5,))
t1.start()
t2.start()

相关文章

  • Day20 数据安全

    一.线程间数据共享 数据的存储跟线程无关; 一个进程中的数据在多个线程中可以直接用情况1: 在子线程中使用主线程中...

  • 2018-09-21

    Day20

  • 教育管理系统的数据安全

    任何一个软件系统,数据安全是必须考虑的方面。我们所说的数据安全表现在两个层面,数据存储的安全和数据管理安全,数据存...

  • 数据安全从”怎么看“到“怎么办”

    一、数据安全“怎么看” 业界对于数据安全有着各种各样的理解。 有人认为数据安全就是数据层的安全,也就是通常所说的数...

  • 大数据安全--敏感数据识别和分级打标

    一、信息安全技术政务信息共享数据安全技术要求 数据安全技术要求共享数据提供方在进行数据分级分类时的安全要求包括: ...

  • 数据库的安全性

    数据库的安全性 安全性概述 安全性  数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或...

  • 数据安全风控

    接触这类工作2月的一个体会和思考: 1、数据安全风控是什么 数据安全风控就是数据在流动过程中是否是安全的。数据安全...

  • 电子政务系统安全技术概述

    1-电子政务系统的安全技术 1.1数据安全技术管理 1.1.1根据所保护数据的形态可以分为:数据静态安全和数据动态...

  • 数据安全

    下班时间,一个同事跑过来说,数据安全检查发现什么问题,我大发雷霆,我们部门还能经得起折腾吗?在目前监管环境下...

  • 数据安全

    一.Base64编码 1.概念 Base64编码是一种对二进制数据编码的方式,可以把源数据(文本,图片,视频音频等...

网友评论

    本文标题:Day20 数据安全

    本文链接:https://www.haomeiwen.com/subject/heaesctx.html