python 의 global 키워드

원본 링크:http://www.cnblogs.com/sening/p/10535628.html
요 며칠 동안 크로스 플랫폼 파일 전송 을 할 때 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

  • Liux 플랫폼 은 다음 과 같 습 니 다.
  • run_crurnt 2 (1,) 122126
  • run_crurnt 2 (3,) 122126
  • run_cunrent_pro 2 (2,) 122129

  • 다음으로 전송:https://www.cnblogs.com/sening/p/10535628.html

    좋은 웹페이지 즐겨찾기