标签:方式 convert pac windows 情况 相互 默认 str 函数名
1.函数式
创建一个活动函数,将函数当做参数传入,然后用 threading 模块:
threading.Thread(target = 函数名,args = (a,b))
2.继承
去继承一个来自 threading.Thread 的类,功能写在 self.run() 中
方法1:
from threading import Thread
import time
def eat(name):
print(‘%s is eating )%name
if __name__ == ‘__main__‘# windows 要写这句(别问为什么,没有原因必须要写.).其他的...嗯.你随意 你怎么开心怎么来.我是爱你的.你是自由的
t = Thread(target = eat,args = (‘ff‘,)) #创建线程,接着要开启它
t.start()
print(‘??‘)
from threading import Thread
import time
class Eat(Thread):
def __init__(self,name):
super().__init__()
self.name = name
def run(self):
time.sleep(2)
print(‘%s is eating ‘%self.name)
if __name__ == ‘__main__‘:
t = Eat(‘ff‘)
t.start()
print(‘??‘)
首先只要牵扯到守护,那就要先想到一个daemon
运行完毕并非是终止运行
- 对主进程来说,运行完毕指的是主进程代码运行结束
- 对主线程来说,就是指主线程所在的进程内的非守护线程统统运行完毕,主线程才算运行完毕
设置方式: ```python
if name == ‘main‘: p=Process(target = funcname , args= (参数,)) p.setDaemon(True) #必须在t.start()之前设置 p.start() #p.join() 这里这个 join 什么时候需要加,我也很模糊...
###主进程创建守护进程
1. 守护进程会在主进程代码执行结束后就终止.
2. 守护进程内无法再开启子进程,否则抛异常.
*进程之间是相互独立的,被守护的进程运行结束,守护进程也就跟着挂*
##守护线程
设置方式
```python
if __name__ == ‘__main__‘:
t=Thread(target = funcname , args= (参数,))
t.setDaemon(True) #必须在t.start()之前设置
t.start()
#t.join() 这里这个 join 什么时候需要加,我也很模糊...
#那个 True 必须得有. 因为默认是 False,就代表主线程结束时,子线程依然在执行.
标签:方式 convert pac windows 情况 相互 默认 str 函数名
原文地址:http://www.cnblogs.com/ugfly/p/7449896.html