Python:进程与进程池
2016-07-01 18:18
441 查看
进程使用方法
#!/usr/bin/env python
#coding=utf-8
from multiprocessing import Process;
def main():
servers = func.mysql_query('select id,host,port,username,password,tags from db_servers_mysql where is_delete=0 and monitor=1;')
logger.info("check mysql controller started.")
if servers:
plist = []
for row in servers:
server_id=row[0]
host=row[1]
port=row[2]
username=row[3]
password=row[4]
tags=row[5]
p = Process(target = check_mysql, args = (host,port,username,password,server_id,tags))
plist.append(p)
for p in plist:
p.start()
time.sleep(10)
for p in plist:
p.terminate()
for p in plist:
p.join()
else:
logger.warning("check mysql: not found any servers")
logger.info("check mysql controller finished.")
if __name__=='__main__':
main()
进程池使用方法
#!/usr/bin/env python
#coding=utf-8
import time
import multiprocessing
def say(i,x):
print '%s %s' % (i,x)
time.sleep(1)
return time.time()
if __name__ == "__main__":
p = multiprocessing.Pool(processes=3)
result = [] #申明一个列表,用来存放各进程返回的结果
for i in range(6):
x = 'hello'
result.append(p.apply_async(say, (x,i,))) #将返回结果append到列表中
p.close()
time.sleep(3)
p.terminate()
p.join() #调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束
for res in result: #循环读出列表返回的结果
print ":::",res.get()
#!/usr/bin/env python
#coding=utf-8
from multiprocessing import Process;
def main():
servers = func.mysql_query('select id,host,port,username,password,tags from db_servers_mysql where is_delete=0 and monitor=1;')
logger.info("check mysql controller started.")
if servers:
plist = []
for row in servers:
server_id=row[0]
host=row[1]
port=row[2]
username=row[3]
password=row[4]
tags=row[5]
p = Process(target = check_mysql, args = (host,port,username,password,server_id,tags))
plist.append(p)
for p in plist:
p.start()
time.sleep(10)
for p in plist:
p.terminate()
for p in plist:
p.join()
else:
logger.warning("check mysql: not found any servers")
logger.info("check mysql controller finished.")
if __name__=='__main__':
main()
进程池使用方法
#!/usr/bin/env python
#coding=utf-8
import time
import multiprocessing
def say(i,x):
print '%s %s' % (i,x)
time.sleep(1)
return time.time()
if __name__ == "__main__":
p = multiprocessing.Pool(processes=3)
result = [] #申明一个列表,用来存放各进程返回的结果
for i in range(6):
x = 'hello'
result.append(p.apply_async(say, (x,i,))) #将返回结果append到列表中
p.close()
time.sleep(3)
p.terminate()
p.join() #调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束
for res in result: #循环读出列表返回的结果
print ":::",res.get()
相关文章推荐
- python学习(3)
- python 列表生成式
- 用Python读红楼梦之——一、词云绘制
- 一个简单的爬虫脚本--宅男福利
- Python之父谈Python的未来形式
- 学前感悟
- Python - 编码转换
- 操作服务器常用命令
- 举例讲解Python的lambda语句声明匿名函数的用法
- python3 opencv3 help(cv2)
- Python 语言及其应用 Chapter_3_Note_2 容器_列表_元组_字典_集合
- python 迭代
- Python初学习
- Windows下python第三方安装包的安装
- python数据类型转换(二(5))
- python:numpy的一些命令
- python学习中的一些“坑”
- python不同数值(适用于整型的内建函数)类型返回,二进制,八进制otc.
- An introduction to Numpy and Scipy
- Python 语言及其应用 Chapter_2_Note_1 熟悉字符串_字符串函数