本文介绍了如何在python中的同一对象的另一个线程中生成一个线程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用的是装有 Cygwin 的 vanilla Python 2.7
I'm using vanilla Python 2.7 loaded with Cygwin
我希望能够生成调用顶级函数的线程子类,而顶级函数生成调用子级函数的单独线程.这是伪代码
I want to be able to spawn a thread subclass that calls a top-level function, and the top-level function spawns separate threads calling sub-level functions. Here's pseudo-code
import threading
#!/usr/bin/python
import threading
class Server(threading.Thread):
def __init__(self, threadID, target):
self.__threadID = threadID
self.__target = target
threading.Thread.__init__(self)
# Function called when the thread's start() function is called
def run(self):
self.target()
pass
# This is the top level function called by other objects
def reboot(self):
# I want this function to spawn two threads
# - First thread calls the __powerDown() function
# - Secod thread calls the __powerUp() function, and pends
# until __powerDown() thread finishes
pass
def __powerDown(self):
# What to put here?
pass
def __powerUp(self):
# What to put here?
pass
__threadID = ''
__target = None
# Code calling above code
server = Server(123, reboot) # Will this work?
推荐答案
类似的事情?
import threading
class Server(threading.Thread):
# some code
# This is the top level function called by other objects
def reboot(self):
# perhaps add a lock
if not hasattr(self, "_down"):
self._down = threading.Thread(target=self.__powerDown)
self._down.start()
up = threading.Thread(target=self.__powerUp)
up.start()
def __powerUp(self):
if not hasattr(self, "_down"):
return
self._down.join()
# do something
del self._down
这篇关于如何在python中的同一对象的另一个线程中生成一个线程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!