`
忧里修斯
  • 浏览: 425861 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Python多线程实例

阅读更多
特别注意:
加锁的位置一定要只包住临界资源,如:
self.stateLock.acquire()
tstate = self.state
self.stateLock.release()

class NetworkMgr(object):
    '''
        网络设置管理
    '''
    
    def __init__(self):
        
        self.state = True
        self.getThread = None
        self.stateLock = threading.RLock()
        self.sleeptime = 3
        self.thdRun = False
        self.start_ping_thread()
    
    def start_ping_thread(self):
        '''
                    开启获取网络连接的线程
        '''
        self.thdRun = True
        self.getThread = threading.Thread(target = NetworkMgr.ping_network, kwargs = {'me':self})
        self.getThread.setDaemon(True)
        self.getThread.start()
        
    def get_network_state(self):
        '''
                    获取网络状态
                    返回值:
            0:连接正常。-1:连接失败
        '''
        tstate = True
        self.stateLock.acquire()
        tstate = self.state
        self.stateLock.release()
        return tstate
        
    @staticmethod
    def ping_network(me):
        '''
        ping网络连接,成功将self.state置为0,失败将self.state置为-1
        '''
        while me.thdRun:
            
            node = 'us.i-dong.com'
            alive = 0; timeout = 1.0; ipv6 = 0; count = 4#默认ping4次
            flood = 0; size = IdongPing.ICMP_DATA_STR
            ret = IdongPing.pingNode(alive, timeout, ipv6, count, node, flood, size)
            me.stateLock.acquire()
            me.state = ret
            me.stateLock.release()
            sleep(me.sleeptime)
分享到:
评论

相关推荐

    python多线程 实例 注释详解

    python 多线程 实例 注释详解

    Python 多线程编程实例

    Python 多线程编程实例,一个综合示例

    python多线程实例

    多线程实例,测试案例,对多线程编程理解可以进一步加深

    python多线程 实例Thread 派生子类,创建子类实例

    python多线程 实例 注释详解 从 Thread 派生出一个子类,创建一个这个子类的实例

    Python 多线程实例详解

    Python 多线程实例详解 多线程通常是新开一个后台线程去处理比较耗时的操作,Python做后台线程处理也是很简单的,今天从官方文档中找到了一个Demo. 实例代码: import threading, zipfile class AsyncZip...

    基于python的多线程例子,详细介绍了多线程处理

    基于python的多线程例子,详细介绍了多线程处理,便于理解多线程

    Python多线程编程详细示例

    这个是在学习python多线程的时候自己总结的文档,对理解Python多线程非常有帮助,很多都是从官方文档而来的。

    浅谈PyQt5中异步刷新UI和Python多线程总结

    目前任务需要做一个界面程序,PyQt是非常方便的选择,QT丰富的控件以及python方便的编程。近期遇到界面中执行一些后台任务时界面卡死的情况,解决了在这里记录下。 PyQt PyQt简介 PyQt是Qt的python接口,PyQt的文档...

    python多线程基础框架例子讲解视频

    python多线程基础框架例子讲解视频 今天给网友做一个关于python多线程的教程 也顺便解决网友提到的问题 这只是一个最简单的多线程例子。 在这个例子中并不能保证线程安全

    python多线程实现TCP服务端

    本文实例为大家分享了python多线程实现TCP服务端的具体代码,供大家参考,具体内容如下 需求 1.创建一个TCP服务器接收服务端发送的信息并给予答复 2.以多线程方式实现接收客户端信息 3.间客户端发送的信息解码...

    python 多线程串行和并行的实例

    今天小编就为大家分享一篇python 多线程串行和并行的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python的多线程小实例

    一个关于Python的thread多线程小实例 运行结果可以看出整体程序先结束,而调用线程的方法后结束

    Python多线程实例教程

    在早期的Python多线程实现中,采用了thread模块。例如:  from time import ctime,sleep from thread import start_new_thread def loop1(): print enter loop1:,ctime(); sleep(3); print leave loop1

    Python的Socket连接例子(包含多线程例子)

    简单的Python的Socket连接的例子 包含Server和Client,还有一个多线程的测试

    Python多线程thread及模块使用实例

    主要介绍了Python多线程thread及模块使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python多线程Socket程序例子

    NULL 博文链接:https://ghostfromheaven.iteye.com/blog/1305001

    Python多线程原理与用法详解

    本文实例讲述了Python多线程原理与用法。分享给大家供大家参考,具体如下: 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一...

    Python基于多线程操作数据库相关问题分析

    本文实例分析了Python多线程操作数据库相关问题。分享给大家供大家参考,具体如下: python多线程并发操作数据库,会存在链接数据库超时、数据库连接丢失、数据库操作超时等问题。 解决方法:使用数据库连接池,并且...

Global site tag (gtag.js) - Google Analytics