zoukankan      html  css  js  c++  java
  • python中的global关键字

    这几天在做跨平台文件传输的时候,希望用到global关键字来做全局的速度限制,但是如果是多进程和多线程的环境,在不同平台上发现表现不同。具体结果如下:

    #-*- coding: utf-8 -*-
    
    # @Time    : 2016/12/15 15:02
    # @File    : gconf.py
    # @flag    : Dream of life......
    import os
    cruent = 1
    def run_cunrent(*args):
    
        global cruent
        cruent = 2
        print 'run_crurnt',cruent,args,os.getpid()
    
    def run_cunrent_pro(*args):
        global cruent
        print 'run_cunrent_pro',cruent,args,os.getpid()
    
    import multiprocessing
    
    if __name__ == '__main__':
        multiprocessing.freeze_support()
        import threading
        st = threading.Thread(target=run_cunrent, args=(1,))
        st.start()
        st.join()
    
        st = threading.Thread(target=run_cunrent, args=(3,))
        st.start()
        st.join()
    
        p = multiprocessing.Process(target=run_cunrent_pro, args=(2,))
        p.start()
        p.join()
    

    在win上的输出如下:

    • run_crurnt 2 (1,) 23888
    • run_crurnt 2 (3,) 23888
    • run_cunrent_pro 1 (2,) 27112

    在linux平台如下:

    • run_crurnt 2 (1,) 122126
    • run_crurnt 2 (3,) 122126
    • run_cunrent_pro 2 (2,) 122129
  • 相关阅读:
    c11---位运算相关
    c10---多文件开发
    C9---include,编译
    c8---递归
    c7---函数
    c6----函数的声明和实现
    c5
    Arm 环境上面libgdiplus的简单安装配置
    批量查找可执行文件目录的简单方法
    Android常用工具类
  • 原文地址:https://www.cnblogs.com/sening/p/10535628.html
Copyright © 2011-2022 走看看