展开全部

背景:Python脚本:读取文件中每行,放入列表中62616964757a686964616fe78988e69d8331333363396465;循环读取列表中的每个元素,并做处理操作。

核心:多线程处理单个for循环函数调用

模块:threading

第一部分:

:多线程脚本 (该脚本只有两个线程,t1循环次数

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

#!/usr/bin/env python#-*- coding: utf8 -*- import sysimport timeimport stringimport threadingimport datetimefileinfo = sys.argv[1] # 读取文件内容放入列表host_list = []port_list = [] # 定义函数:读取文件内容放入列表中def CreateList(): f = file(fileinfo,'r') for line in f.readlines(): host_list.append(line.split(' ')[0]) port_list.append(line.split(' ')[1]) return host_list return port_list f.close() # 单线程 循环函数,注释掉了#def CreateInfo(): # for i in range(0,len(host_list)): # 单线程:直接循环列表# time.sleep(1)# TimeMark = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')# print "The Server's HostName is %-15s and Port is %-4d !!! [%s]" % (host_list[i],int(port_list[i]),TimeMark)# # 定义多线程循环调用函数def MainRange(start,stop): #提供列表index起始位置参数 for i in range(start,stop): time.sleep(1) TimeMark = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') print "The Server's HostName is %-15s and Port is %-4d !!! [%s]" % (host_list[i],int(port_list[i]),TimeMark) # 执行函数,生成列表CreateList()# 列表分割成:两部分 mid为列表的index中间位置mid = int(len(host_list)/2) # 多线程部分threads = []t1 = threading.Thread(target=MainRange,args=(0,mid))threads.append(t1)t2 = threading.Thread(target=MainRange,args=(mid,len(host_list)))threads.append(t2) for t in threads: t.setDaemon(True) t.start()t.join()print "ok"

以上是脚本内容!!!

----------------------------------------------------------------------

:读取文件的内容

文件内容:

[root@monitor2 logdb]# cat hostinfo.txt

192.168.10.11 1011

192.168.10.12 1012

192.168.10.13 1013

192.168.10.14 1014

192.168.10.15 1015

192.168.10.16 1016

192.168.10.17 1017

192.168.10.18 1018

192.168.10.19 1019

192.168.10.20 1020

192.168.10.21 1021

192.168.10.22 1022

192.168.10.23 1023

192.168.10.24 1024

192.168.10.25 1025

:输出结果:

单线程 : 执行脚本:输出结果:

[root@monitor2 logdb]# ./Threadfor.py hostinfo.txt

The Server's HostName is 192.168.10.10 and Port is 1010 !!! [2017-01-10 14:25:14]

The Server's HostName is 192.168.10.11 and Port is 1011 !!! [2017-01-10 14:25:15]

The Server's HostName is 192.168.10.12 and Port is 1012 !!! [2017-01-10 14:25:16]

.

.

.

The Server's HostName is 192.168.10.25 and Port is 1025 !!! [2017-01-10 14:25:29]

多线程:执行脚本:输出 结果

[root@monitor2 logdb]# ./Threadfor.py hostinfo.txt

The Server's HostName is 192.168.10.11 and Port is 1011 !!! [2017-01-10 14:51:51]

The Server's HostName is 192.168.10.18 and Port is 1018 !!! [2017-01-10 14:51:51]

The Server's HostName is 192.168.10.12 and Port is 1012 !!! [2017-01-10 14:51:52]

The Server's HostName is 192.168.10.19 and Port is 1019 !!! [2017-01-10 14:51:52]

The Server's HostName is 192.168.10.13 and Port is 1013 !!! [2017-01-10 14:51:53]

The Server's HostName is 192.168.10.20 and Port is 1020 !!! [2017-01-10 14:51:53]

The Server's HostName is 192.168.10.14 and Port is 1014 !!! [2017-01-10 14:51:54]

The Server's HostName is 192.168.10.21 and Port is 1021 !!! [2017-01-10 14:51:54]

The Server's HostName is 192.168.10.15 and Port is 1015 !!! [2017-01-10 14:51:55]

The Server's HostName is 192.168.10.22 and Port is 1022 !!! [2017-01-10 14:51:55]

The Server's HostName is 192.168.10.16 and Port is 1016 !!! [2017-01-10 14:51:56]

The Server's HostName is 192.168.10.23 and Port is 1023 !!! [2017-01-10 14:51:56]

The Server's HostName is 192.168.10.17 and Port is 1017 !!! [2017-01-10 14:51:57]

The Server's HostName is 192.168.10.24 and Port is 1024 !!! [2017-01-10 14:51:57]

The Server's HostName is 192.168.10.25 and Port is 1025 !!! [2017-01-10 14:51:58]

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

python 加速循环的执行_python循环怎么用多线程去运行相关推荐

  1. python主线程执行_python 并发执行之多线程

    正常情况下,我们在启动一个程序的时候.这个程序会先启动一个进程,启动之后这个进程会拉起来一个线程.这个线程再去处理事务.也就是说真正干活的是线程,进程这玩意只负责向系统要内存,要资源但是进程自己是不干 ...

  2. python包导入细节_python循环导入是一个实现细节吗?

    从一个小的研究中,听起来答案似乎是,涉及到一些规范和未文档化的行为,这些行为与模块如何初始化以及import语句的不同形式如何解析(sub)模块有关.总的来说,循环导入的行为看起来应该由系统很好地定义 ...

  3. python主线程执行_Python队列 – 最多运行n个线程

    场景: 我有一个非常大的数据库模型迁移正在进行新的构建,我正在研究如何将Web应用程序中的当前实时数据迁移到本地测试数据库中. 我想在python中设置一个脚本,它将同时处理我的模型的迁移.我的模型实 ...

  4. 多个python脚本同时执行_Python实现脚本锁功能(同时只能执行一个脚本)

    1. 文件锁 脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件. 通过文件的判断来确定脚本是否正在执行. 方法实现也比较简单,这里以python脚本为例 #coding= ...

  5. python scheduler 定时执行_python使用apscheduler做定时任务的管理

    工作中经常需要做一些定时任务,之前基本都是用crontab来定时执行脚本,python也有一个apscheduler方便进行定时任务的管理,所以我简单学习了下apscheduler的使用. Block ...

  6. python嵌套循环注意事项_python循环嵌套的几种使用方法

    使用循环嵌套来获取100以内的质数 使用循环嵌套来获取100以内的质数 #!/usr/bin/python # -*- coding: UTF-8 -*- num=[]; i=2 for i in r ...

  7. python elif报错_python循环的elif报错是什么原因

    else和elif语句也可以叫做子句,因为它们不能独立使用,两者都是出现在if.for.while语句内部的.else子句可以增加一种选择:而elif子句则是需要检查更多条件时会被使用,与if和els ...

  8. python文件双击执行_python 程序双击执行的小技巧

    文章更新于:2020-04-03 按照惯例,需要的文件附上链接放在文首. 文件名:ICOFX图标制作软件.7z 文件大小:40.2 MB 下载链接:https://www.lanzous.com/ia ...

  9. python换行不执行_PYTHON无法换行问题,求指点

    PYTHON无法换行问题,百思不得其解.fp.write(u'{a}\n'.format(a='\n'.join(a))) 改成fp.write(u'{a}\n'.format(a=','.join( ...

最新文章

  1. LeetCode简单题之拥有最多糖果的孩‭子
  2. 【玩转Ubuntu】01. Ubuntu上配置JDK
  3. 疯狂kotlin讲义连载之Kotlin的基础类型--null安全
  4. 并查集 基础 AC 2014-01-14 13:37 202人阅读 评论(0) 收藏...
  5. 在Ubuntu虚拟机中编译运行C程序
  6. 实现redis 手动_Redis精华所在,一口气说完Redis的主从复制和哨兵模式
  7. java web 项目启动_Java web项目启动Tomcat报错解决方案
  8. linux退出大于符号,每天一个linux命令--退出符号
  9. HTML5+CSS3实现的响应式垂直时间轴
  10. 玛丽卡(codevs 1021)
  11. 安装Python psutil包
  12. windows 9X, 2000, xp所有版本注册表设置(1)
  13. 计算机制图的简称市什么,计算机地的图制图复习题.doc
  14. jedis操作set_Jedis的学习
  15. 【优化求解】基于NSGA2算法求解多目标优化问题matlab代码
  16. 鲤鱼溪传说:神鱼与三仙姑
  17. linux-top命令详解
  18. 商用向南,家用向北丨DOMOTEX asia 2020地毯馆大布局
  19. 通俗易懂 !Kafka 开发快速入门看这篇就够了
  20. 2020Android开发常用的开源框架、开源库

热门文章

  1. Java FAQ(1)
  2. 解决达梦数据库新增大字段报错问题
  3. Python 下载依赖包环境经常失败超时解决方法
  4. CENTOS下SAMBA服务不能开启的解决方法
  5. Could not install packages due to an Environment Error: [Errno 13] Permission denied 解决方案
  6. Angular-在服务和组件中使用管道
  7. 将功能绑定到Twitter Bootstrap Modal关闭
  8. “ yield”关键字有什么作用?
  9. Linux网络相关、firewalld、netfilter及其5表5链、iptables语法
  10. java变量初始化0.00