zoukankan      html  css  js  c++  java
  • 公共数值操作(2)——数值

     1 测试1
     2 
     3 import threading
     4 import time
     5 
     6 g_num = 0
     7 
     8 def work1(num):
     9     global g_num
    10     for i in range(num):
    11         g_num += 1
    12     print("----in work1, g_num is %d---"%g_num)
    13 
    14 
    15 def work2(num):
    16     global g_num
    17     for i in range(num):
    18         g_num += 1
    19     print("----in work2, g_num is %d---"%g_num)
    20 
    21 
    22 print("---线程创建之前g_num is %d---"%g_num)
    23 
    24 t1 = threading.Thread(target=work1, args=(100,))
    25 t1.start()
    26 
    27 t2 = threading.Thread(target=work2, args=(100,))
    28 t2.start()
    29 
    30 while len(threading.enumerate()) != 1:
    31     time.sleep(1)
    32 
    33 print("2个线程对同一个全局变量操作之后的最终结果是:%s" % g_num)
    34 运行结果: 35 36 ---线程创建之前g_num is 0--- 37 ----in work1, g_num is 100--- 38 ----in work2, g_num is 200--- 39 2个线程对同一个全局变量操作之后的最终结果是:200
    ----------------------------------------------------------------------------------- 40 测试2 41 42 import threading 43 import time 44 45 g_num = 0 46 47 def work1(num): 48 global g_num 49 for i in range(num): 50 g_num += 1 51 print("----in work1, g_num is %d---"%g_num) 52 53 54 def work2(num): 55 global g_num 56 for i in range(num): 57 g_num += 1 58 print("----in work2, g_num is %d---"%g_num) 59 60 61 print("---线程创建之前g_num is %d---"%g_num) 62 63 t1 = threading.Thread(target=work1, args=(1000000,)) 64 t1.start() 65 66 t2 = threading.Thread(target=work2, args=(1000000,)) 67 t2.start() 68 69 while len(threading.enumerate()) != 1: 70 time.sleep(1) 71 72 print("2个线程对同一个全局变量操作之后的最终结果是:%s" % g_num) 73 运行结果: 74 75 ---线程创建之前g_num is 0--- 76 ----in work1, g_num is 1088005--- 77 ----in work2, g_num is 1286202--- 78 2个线程对同一个全局变量操作之后的最终结果是:1286202 79 结论 80 81 如果多个线程同时对同一个全局变量操作,会出现资源竞争问题,从而数据结果会不正确
  • 相关阅读:
    关于jpa example使用
    文件下载
    文件夹下的文件根据最后修改时间排序
    前端验证图片是否加载成功
    LocalDate获取当天,本月第一天,本月最后一天,今年第一天,今年最后一天
    将word文档合成一张图片输出
    easyui前端分页与layui前端分页
    Java线程池源码流程图
    hexo发布到gitee和github上及主题优化
    【JVM之美】垃圾收集算法
  • 原文地址:https://www.cnblogs.com/Skyda/p/9220726.html
Copyright © 2011-2022 走看看