python进程和线程的区别,python使用线程
本文主要介绍Python线程。在本文的开头,我们将进入中级编程。处理更复杂事情。比如这篇文章的线程,先从基础知识说起,有需要的朋友可以参考下面文章的详细内容。
00-1010一、什么是线程?其次,解释线程的代码。第三,线程触发业务函数,线程调用业务函数。第四,哪一个是附加线程?五.总结
目录
我们知道所有工人同时在工厂工作,复制自己的工作。他们是独立运作的单位!
一个线程也是像这样的独立运行单元,多线程,就是多个独立运行单元同时执行同一件事情。
这是简单的理解,后面会比较。
穿线。Thread class是Python中的一个Thread类,封装了线程的信息和一些常用的方法。
线程处于一种状态,比较一个工人一天的状态是合适的。他们早上上班,然后工作,有时候需要停下来休息,最后下班。
运行下面的代码看看:
导入线程
mythread=线程。线程()
打印( mythread: ,mythread)
print(is_alive: ,mythread.is_alive())
mythread.start()
打印( mythread: ,mythread)
print(is_alive: ,mythread.is_alive())
下面是运行结果:
建议读者先运行一下。
一、什么是线程?
我们使用了上面的库线程,然后创建了一个Thread类的对象实例,并将其赋给了mythread变量。
然后,打印函数是否是对象的_alive()以及线程对象是否是活动的。
两次都是假的。
但是第二次我们看到线程对象打印出来,变成了‘停止’。
也就是说,我们运行启动函数(也就是线程启动函数)之后,线程就会进入停止状态。
上面就是这个思路,但是好像没啥用。下面就让它做点什么吧。
二、再来解释线程的代码
比如这次的业务是:
def点赞_冠珠():
Now=datetime.datetime.now() #初始化时间变量
Name=python孟新
Print (%s name:% s% (now,name)) #首次打印时间和风扇名称
时间.睡眠(1)
结果=太好了!名关注雷,获得了很多知识和开发经验!
print((% s result 3360% s %(now,result)) #秒打印时间和风扇活动
回送结果
我们可以用线程来调用。下面委员会写了一个带参数的函数。当通过线程调用业务函数时,请指定:
将target:设置为要调用的函数kwargs:。如果有参数的话,传一个k-v dict就可以了。def点赞_冠珠(名):
#省略一些代码
mythread=threading . thread(target=dianzan _ guangzhu,kwargs={name 3360 Python正在萌新 })
现在,写好所有代码,用线程赞,直接调用。
我们看看下面的代码:
导入线程
导入日期时间
导入时间
“学术委员会定义了一个注意力函数”
def点赞_冠珠():
现在=日期时间.日期时间
ime.now()
name = "python萌新"
print("%s name:%s" % (now, name))
time.sleep(1)
result = "好棒!" + name + " 关注雷学委,学到了好多知识和开发经验!"
print("%s result:%s" % (now, result))
return result
mythread = threading.Thread(target=dianzan_guanzhu)
print("mythread:", mythread)
print("is_alive:", mythread.is_alive())
mythread.start()
print("mythread:", mythread)
print("is_alive:", mythread.is_alive())
dianzan_guanzhu()
print("is_alive:", mythread.is_alive())
直接复制运行,这里我们这个dianzan_guanzhu
函数被调用了两次
第一次是mythread.start
函数。
第二次是我们直接脱离线程调用dianzan_guanzhu
函数。
下面是运行结果:
好像没啥的样子。
再看一次,注意关注每次打印的时间,输入的时间好像错乱了?没错,不是眼花,是正确运行结果。
因为进入dianzan_guanzhu
函数之后,初始化了now变量,这个时间固定了。
但是在线程外面也调用dianzan_guanzhu
函数,所以这里是:两个线程在同时做同样的事情。
四、多了一个线程是哪个?
这里补充一下,我们写python脚本,运行代码的时候,本身是在一个主线程中的。
只是之前一直没解除线程概念,没写多线程程序,没有感知到这事情。
从现在开始,你要清楚知道:每个程序运行都有一个主线程。
回到结果,两个线程先后依次调用通过函数:
- 首先,先后依次打印第一行输出。
- 分开休眠了一秒(sleep(1))。
- 最后,先后依次打印第二行输出。
五、总结
我们先把线程的基础知识搞懂。
- 每个程序运行过程中至少有一个主线程
- 需要启动更多线程使用
Thread
类来做,target
参数用来绑定业务函数。启动线程用start函数。
到此这篇关于Python基础学习之认识线程的文章就介绍到这了,更多相关Python线程内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。