美文网首页
python多线程、队列

python多线程、队列

作者: 奔跑的老少年 | 来源:发表于2018-07-31 14:31 被阅读0次

实例:

import threading
import time

num = 0
def run():
    global num #声明num未全局变量才可在函数里作为全局变量使用,否则函数里的num为局部变量
    time.sleep(0.8)
    num += 1


def creat_threading():
    t_objects = []
    for i in range(100):
        t = threading.Thread(target=run)#target=方法名,不能加括号,若方法有参数,则需加上args = (n,),如(target=run,args=(n,)),n后面必须加逗号
        # t.setDaemon(True)#将线程变为守护线程,即程序无需等待改线程执行完毕
        t.start()
        t_objects.append(t) #为了不阻塞后面线程的启动,不在这里join,否则会变成但线程,所以先放到一个列表里再join
        # print(i)

    for t in t_objects: #循环线程实例表,等待所有线程执行完毕
        t.join()#等待线程执行结束
    return num


a = creat_threading()
print(a)

python的多线程实际是个假的多线程,不管你有多少核,都只会用一个核。python利用CPU上下文切换的优势,是我们看起来像使用了并发的效果,实际上它就是一个单线程。IO操作如读取数据不占用cpu,计算占用cpu。python多线程不适合cpu密集操作型的任务,适合IO操作密集型的任务
线程共用同一资源内存,如线程A修改了name值,在A还未存储修改后的值线程B又去修改name的值,那么B取到的是name的初始值,A修改后的值会被B修改后的值覆盖,造成数据不是我们想要的。为解决这种情况,我们需要加锁,即A在修改的时候不允许B修改

队列的主要作用:
1、解耦,使程序直接实现松耦合,一个模块被修改了不会影响其他的
2、提高处理效率
队列的几种模式:
1、先进先出
2、后进先出
3、设置优先级

相关文章

  • python多线程的使用

    python多线程的使用 后续还会更新其他方法实现的多线程。 Queue实现多线程 通过队列实现多线程 启动一定数...

  • python 进程,队列

    1.进程,队列 在python中虽然不能发挥多线程的优势,但是对于tensorflow中,多线程任务,我们可以写多...

  • python多线程、队列

    实例: python的多线程实际是个假的多线程,不管你有多少核,都只会用一个核。python利用CPU上下文切换的...

  • 多线程爬虫

    多线程爬虫 Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用; 队...

  • Python爬虫必须理解队列

    队列是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列...

  • 队列和线程

    [iOS多线程中,队列和执行的排列组合结果分析] 多线程中的队列有:串行队列,并发队列,全局队列,主队列。 执行的...

  • 队列

    多线程队列 多进程队列

  • Thread

    队列 线程锁 多线程,线程池 队列 多线程爬虫示例 多线程 自定义线程 线程池

  • iOS - Multi-Thread

    概念篇 进程 线程 多线程 单核多线程 & 多核多线程 并行 & 并发 同步 & 异步 队列 队列 & 任务 的执...

  • Python实现简单多线程ZIP密码暴力破解程序

    在阅读本篇文章前,推荐阅读一下 Python简单queue队列与多线程使用演示源码放在:多线程ZIP暴力破解示例 ...

网友评论

      本文标题:python多线程、队列

      本文链接:https://www.haomeiwen.com/subject/pypcvftx.html