标题:多线程在mac平台和linux平台执行效果不一样
只看楼主
kfclassmate
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-11-8
结帖率:0
已结贴  问题点数:20 回复次数:2 
多线程在mac平台和linux平台执行效果不一样
python版本:python2
脚本功能:检查一段ip地址是否可以ping通,使用了多线程
问题:在linux平台运行脚本很快执行完毕,但在mac平台运行很慢,通过在lock.acquire()获得锁和lock.release()释放锁后打印记录跟踪进程执行过程了,在mac上运行时基本上是每隔1秒打印一次,在linux平台执行时基本1秒就打印完毕了
代码
程序代码:
import threading,sys,os,re,time
inused = []
notused = []
inusedcount = 0
notusedcount = 0
lock = threading.Lock()
class ipcheck(threading.Thread):
    def __init__(self,ip,cmd):
        threading.Thread.__init__(self)
        self.ip = ip
        self.cmd = cmd
    def run(self):
        code = os.system(self.cmd)
        global inusedcount
        global notusedcount
        global inused
        global notused
        if code == 0:
            lock.acquire()
            inused.append(self.ip)
            inusedcount += 1
            lock.release()

        else:
            lock.acquire()
            notused.append(self.ip)
            notusedcount += 1
            lock.release()
搜索更多相关主题的帖子: linux 平台 lock 执行 ip 
2019-11-08 15:30
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:20 
回复 楼主 kfclassmate
插入时间点.计算每步所用的时间.
code = os.system(self.cmd) 这个可以手动ping下查看下
2019-11-08 15:53
kfclassmate
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-11-8
得分:0 
回复 2楼 fall_bernana
手动ping过,跟linux效果一样的
2019-11-08 16:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497679-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054968 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved