首页 > 其他分享 >4.线程安全

4.线程安全

时间:2022-09-01 21:44:17浏览次数:47  
标签:count threading t2 number t1 安全 线程

一个进程中有很多线程,且线程共享所有进程中的资源。

多进程统统是去操作一个“东西”,可能会存在数据混乱的情况,例如:

1.示例一:

import threating

loop = 10000
number = 0

def _add(cound):
    global number
    for i in range(count):
        number += 1

def _sub(count):
    global number
    for i in range(count):
        number -= 1


t1 = threading.Thread(target= _add,args= (loop,))
t2 = threading.Thread(target= _sub,args=(loop,))
t1.start()
t2.start()

t1.join()
t2.join() t2执行完毕,才继续往下走

2.对线程进行加锁(当一个线程执行完成后会将锁释放,然后另一个线程申请到锁进行执行最后释放锁)

import threading

lock_object = threading.RLock()#需要先创建锁
lonp = 100000
number = 0

def _add(count):
    lock_object.acquire() #加锁
    global number 
    for i in range(count):
        number += 1
    lock_object.release()#释放锁

def _sub(count):
    lock_object.acquire() #申请锁(等待)
    global number
    for i in range(count):
        number -= 1
    lock_object.release() #释放锁

t1 = threading.Thread(target = _add, args=(loop,))
t2 = threading.Thread(target=_sub, args=(loop,))
t1.start()
t2.start()

t1.join() #t1线程执行完毕后,才继续往后走
t2.join() #t2线程执行完毕后,才继续往后走

 

标签:count,threading,t2,number,t1,安全,线程
From: https://www.cnblogs.com/jxyl/p/16647923.html

相关文章

  • 安全问题系列一|每位开发者必问的五个安全问题
    【编者按】关于安全防护的问题,我们将有两期系列内容,这是安全系列的第一期内容,如阅读第二期内容,请关注后期推送。开发团队在互联网应用的安全方面扮演着至关重要的角色。虽......
  • 小迪安全D3笔记:基础入门-搭建安全拓展
    title:小迪安全D3笔记:基础入门-搭建安全拓展author:TTdate:2022-09-01域名扫描只能扫描出来域名文件,而域名文件只是占服务器资源的一小部分;IP扫描可以直接扫描出来......
  • 3.多线程开发
    线程的常用方法:- t.start(),当前线程准备就绪(等待CPU调度,具体时间由CPU进行决定)   -t.join(),等待当前线程的任务执行完毕后再向下继续执行。i......
  • C# 子线程快速终止的几个办法
    C#子线程快速终止的几个办法码农人生C#编程欢迎围观交流​关注 1人赞同了该文章因项目需要,采用了多线程方案,其中主线程负责界面处理(如显示......
  • 小迪安全D2笔记:基础入门-数据包拓展
    title:小迪安全D2笔记:基础入门-数据包拓展author:TTdate:2022-09-01一、http与httpshttp抓到的是明文https抓到的带加密http简要通信过程浏览器建立与web服务......
  • 并发多线程11std::atomic续谈、std::async深入谈
    std::atomic续谈、std::async深入谈一、std::atomic续谈#include<iostream>#include<thread>#include<atomic>usingnamespacestd;std::atomic<int>g_count=......
  • 数据库连接和事务以及线程之间的关系
    数据库连接和事务以及线程之间的关系目录数据库连接和事务以及线程之间的关系一、概述二、事务1、什么是事务?3、为什么需要事务?4、事务本质5、事务是怎么做到同时成功,同时......
  • BI如何实现用户身份集成自定义安全程序开发
    统一身份认证是整个IT架构的最基本的组成部分,而账号则是实现统一身份认证的基础。做好账号的规划和设计直接决定着企业整个信息系统建设的便利与难易程度,决定着系统能否......
  • HCNP Routing&Switching之DHCP安全
    前文我们了解了MAC地址防漂移技术,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16632239.html;今天我们来了解下DHCP安全相关话题;回顾DHCP工作流程DHCP......
  • 小迪安全D1笔记:基础入门-概念名词
    title:小迪安全D1笔记:基础入门-概念名词author:TTdate:2022-09-01域名网站的地址名称,如www.baidu.com可在第三方平台进行注册,如阿里云、namesilo顶级/一级域名:......