博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 进程、线程;创建、杀死、全局变量共享
阅读量:3580 次
发布时间:2019-05-20

本文共 1209 字,大约阅读时间需要 4 分钟。

一、进程

import multiprocessingimport osimport signalprocess_id = []num=multiprocessing.Value("d",10.0) #单个值num_array=multiprocessing.Array("i",[1,2,3,4,5])   #主进程与子进程共享这个数组 def func(i,a,array):    process_id.append(os.getpid())    while True:        print("the {} dog".format(i))        array[0] = a        a = i                for i in range(10):    process = multiprocessing.Process(target=func, args=([i, num, num_array]), daemon=False) # daemon表示守护主进程,这里为了测试杀死进程,将其关闭    process.start()time.sleep(0.2) #等待进程运行pirnt(num)print(num_array[0])#杀死进程for id in process_id:    os.kill(int(id), signal.SIGKILL)

二、线程(默认数组、字典等变量全局共享,可以直接在方法内调用全局变量值,而无需传递)

from threading import ThreadthreadId = []stop_threads = False #判定符,为true时,退出线程方法,即杀死线程array = [1,2,3,4,5]def func(i):    while True:        print("the {} dog".format(i))        array[i] = i + 2        if stop_threads:            breakfor i in range(len(array)):    thread = Thread(target=func, args=([i,]), daemon=False) # 关闭守护    thread.start()    threadId.append(thread) # 记录线程对象time.sleep(0.5)print(array)stop_threads = True  # 判定符开启for t1 in threadId:    t1.join() # 阻塞,等子线程运行完,在运行主线程    print('thread killed')threadId = []  # 置空线程池stop_threads = False # 判定符关闭

转载地址:http://euagj.baihongyu.com/

你可能感兴趣的文章
缓存:局部性
查看>>
mysql原理:b+树索引
查看>>
mysql原理:最左原则
查看>>
mysql原理:join标到底是什么,为什么有军规不建议超过三个
查看>>
redis缓存穿透
查看>>
redis缓存雪崩
查看>>
mysql的事务隔离
查看>>
mvc架构
查看>>
ElasticSearch(0) ES的认识
查看>>
JPA入门
查看>>
JPA关系
查看>>
4.spring注解和生命周期相关的(了解)
查看>>
3.spring 的纯注解配置
查看>>
4.Spring 整合 Junit
查看>>
安装配置 Kali Linux 笔记
查看>>
持久加密U盘安装 Kali Linux 笔记
查看>>
[ 笔 记 ] 主动信息收集_002
查看>>
设计模式学习
查看>>
操作系统学习总结
查看>>
Java JSON字符串与自定义类/基本类型相互转换
查看>>