多线程的使用:

  import threading

  def func(x):
    print(x)
  t= threading.Thread(target=func,args=(12,))
  # 线程启动
  t.start()
  # 主进程阻塞,等待子进程的退出
  t.join()
    # 设置线程为主线程的守护线程
  t.setDaemon()

多进程的使用
  from multiprocessing import Process
  def func(x):
    print(x)
  p = Process(target=func,args=(12,))
  p.start()# 启动子进程实例(创建子进程)
  p.is_alive()# 判断进程子进程是否还在活着
  p.join(timeout)# 是否等待子进程执行结束,或者等待多少秒
  p.terminate()# 不管任务是否完成,立即终止子进程
  p.daemon = True # 设置守护进程

线程池、进程池的使用:
  # 进程池
  from multiprocessing import Pool

  # 线程池
  from multiprocessing.dummy import Pool
  pool = Pool(5) # 同时最大运行线程或者进程个数

  def _excute(x,y):
    print(x+y)
  def _callback(self, temp): # temp必有参数
    print("线程或进程任务完成后的回调")

  pool.apply_async(target=_excute, callback=_callback)
  poll.close()# 关闭Pool,使其不再接受新的任务;
  poll.terminate()# 不管任务是否完成,立即终止;
  poll.join()# 主进程阻塞,等待子进程的退出,必须在close或terminate之后使用

进程或者线程的间通信工具--Queue

  # 线程池、多线程 使用的Queue
  from queue import Queue

  # 多进程使用的queue
  from multiprocessing import JoinableQueue as Queue

  # 进程池使用的queue
  from multiprocessing import Manager

  queue = Manager().Queue()
  queue = Queue()

  queue.qsize()# 返回当前队列包含的消息数量。
  queue.empty()# 如果队列为空,返回True,反之False。
  queue.full()# 如果队列满了,返回True,反之False。
  queue.put(item, block=True, timeout=None)

  将item消息写入队列,block默认值为True;
  如果block使用默认值,且没有设置timeout(单位秒),消息列队如果已经没有空间可写入,此时程序将被阻塞(停
  在写入状态),直到从消息列队腾出空间为止,如果设置了timeout,则会等待timeout秒,若还没空间,则抛
  出"Queue.Full"异常;
  如果block值为False,消息列队如果没有空间可写入,则会立刻抛出"Queue.Full"异常;

  
  queue.get(item, block=True, timeout=None)
 
  获取队列中的一条消息,然后将其从队列中移除,block默认值为True。如果block使用默认值,且没有设置
  timeout(单位秒),消息列队如果为空,此时程序将被阻塞(停在读取状态),直到从消息列队读到消息为止,如果
  设置了timeout,则会等待timeout秒,若还没读取到任何消息,则抛出"Queue.Empty"异常;
  如果block值为False,消息列队如果为空,则会立刻抛出"Queue.Empty"异常;
 
  # get方法并不能让queue的计数-1,必须调用task_done
  queue.task_done()

python多任务的导包问题的更多相关文章

  1. import 导包三种方法

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #导包三种方法 #(常用)完整的导入,也是最基本的方法 import re #自己定义别名,一般情况下尽量少用 ...

  2. python的导包问题

    有事会遇到在python代码中导入包错误问题,本文简单对python包的引入做简单介绍 简单说,我认为python导包一共有3种情况,分别是: 要导的包与当前文件在同一层要导的包在当前文件的底层(就是 ...

  3. python导包显示No module named XXX问题

    最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: #coding=u ...

  4. python 设置默认的导包路径

    在python中 可以通过 sys 模块添加导包时的搜寻路径, sys.path 返回的是所有默认导包路径的列表(搜索次序从下标为零开始,直到寻找到需要导入的包结束) sys.path.insert( ...

  5. python导包语句执行

    今天在做项目中遇到一个问题,在first_page中引用login的登录方法,第一次执行登录可以正常登录,登录成功后,再选择返回主菜单,回到上个页面,再选择登录时报错“login_class isno ...

  6. python导包学习总结

    python初学者,对于导包纠结了不少时间,总结分享,持续前进~ Python导包的两种方法: 1.1  from 包.模块  import 方法名,调用时直接使用方法名() 1.2  from 包. ...

  7. python相对导包问题

    导包分为:绝对路径.相对路径 在测试时发现不能够使用相对路径 查过之后才知道: 运行模块(如:main.py)中导包只能使用绝对路径,不能使用相对路径 官方文档: Note that relative ...

  8. python导包问题,这一篇就够了

    解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...

  9. 记一次Python导包经历

    最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下 问题背景 1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方 ...

随机推荐

  1. python 面向对象 类 __doc__

    用来打印类的描述信息 class A1(object): '''类的描述信息''' print(A1.__doc__) # 类的描述信息

  2. C++模拟Http/Https访问web站点

    一.概述 1.Http与Https的区别与联系 在OSI参考模型中Http与Https均属于应用层协议.Http即Hypertext Transfer Protocol,超文本传输协议:而Https为 ...

  3. SpringBoot开启缓存注解

    https://blog.csdn.net/sanjay_f/article/details/47372967 https://www.cnblogs.com/lic309/p/4072848.htm ...

  4. gstreamer应用笔记

    gstreamer官网 https://gstreamer.freedesktop.org/ 应用手册 https://gstreamer.freedesktop.org/documentation/ ...

  5. spark mllib和ml类里面的区别

    mllib是老的api,里面的模型都是基于RDD的,模型使用的时候api也是有变化的(model这里是naiveBayes), (1:在模型训练的时候是naiveBayes.run(data: RDD ...

  6. vs2010中如何编写C语言程序

    File->New->Project 在打开的New Project对话框中最左侧一栏中选择Visual C++下面的CLR,之后在其右侧的区域中选择CLR Empty Applicati ...

  7. Spring—Ioc

    IoC容器,最主要的就是完成对象的创建以及维护对象的依赖关系等. 所谓控制反转,包括两部分:一是控制,二是反转,就是把传统方式需要由代码来实现对象的创建.维护对象的依赖关系,反转给容器来帮忙管理和实现 ...

  8. Python笔记 #17# Pandas: Merge

    10 Minutes to pandas Concat df = pd.DataFrame(np.random.randn(10, 4)) print(df) # break it into piec ...

  9. bzoj1999 / P1099 树网的核

    P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再 ...

  10. Python3:爬取新浪、网易、今日头条、UC四大网站新闻标题及内容

    Python3:爬取新浪.网易.今日头条.UC四大网站新闻标题及内容 以爬取相应网站的社会新闻内容为例: 一.新浪: 新浪网的新闻比较好爬取,我是用BeautifulSoup直接解析的,它并没有使用J ...