首页 > 编程语言 >python 并发编程之线程

python 并发编程之线程

时间:2023-07-06 16:14:59浏览次数:35  
标签:get python 编程 put 队列 线程 timeout print block

一、队列的使用

1、在python中,内置的有一个类,Queue就是队列

2、队列的使用

from multiprocessing import Queue

if __name__ == '__main__':
    q = Queue(3)  # 队列的大小默认很大
    # 1. 如何入队、
    """obj, block=True, timeout=None"""
    q.put('hellowrold1')
    q.put('helloworld2')
    q.put('helloworld3')
    # q.put('helloworld4', block=False)  # 如果你知道了block参数,当队列满的时候,放不进去的时候,直接报错
    # q.put('helloworld4', timeout=3)  # 如果你知道了timeout参数,当往队列中放入数据的时候,等待3秒,如果放不进去,直接报错
    # q.put_nowait('helloworld4')  # 往队列中放入数据的时候,放不进去直接报错, 指定了参数:block=False

    # 2. 出队
    print(q.get())
    print(q.get())
    # print(q.get())
    """ block=True, timeout=None"""
    # print(q.get(block=False))
    # print(q.get(timeout=3))

    # print(q.get_nowait())  # 不等待取,取不到就报错
    print(q.qsize())  # 队列中剩余的数据量, 这个方法的结果有点不准确.
    # print(q.empty()) # 判断队列是否为空
    # print(q.full())  # 判断队列是否满了 

二、 生产者消费者模型

1、在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题,该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。

2、多

3、

4、

 

三、

 

 

四、

 

标签:get,python,编程,put,队列,线程,timeout,print,block
From: https://www.cnblogs.com/dgp-zjz/p/17532312.html

相关文章

  • 多线程
    了解多线程并发和并行进程和线程总结多线程的实现方式--继承Thread实现步骤packagecom.thread;publicclassMyThreadextendsThread{@Overridepublicvoidrun(){//run()里面的代码就是线程开启之后执行的代码for(inti=0;......
  • Python 异常处理(转载)
    Python异常处理什么是异常异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下语法错误这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正#语法错误示......
  • python基础 如何查看进程的id号、队列的使用(queue)、解决进程之间隔离关系、生产者消
    如何查看进程id号进程都有几个属性:进程名、进程id号(pid-->processid)每一个进程都有一个唯一的id号,通过这个id号就能找到这个进程importosimporttimedeftask():print("task中的子进程号:",os.getpid())print("主进程中的进程号:",os.getppid())#parent......
  • TDengine 3.0.4.0 重要特性之 Python UDF 实战分享
    TDengine3.0.4.0发布了一个重要特性:支持用Python语言编写的自定义函数(UDF)。这个特性极大节省了UDF开发的时间成本。作为时序大数据处理平台,不支持PythonUDF显然是不完整的。UDF在实现自己业务中特有的逻辑时非常有用,比如量化交易场景计算自研的交易信号。本文内容由浅......
  • Python3 使用confluent_kafka实现异步向Kafka中写入数据
    使用的python包pipinstallconfluent-kafka创建topic&&扩充partition#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/2/616:48#@Software:PyCharm__author__="JentZhang"importjsonfromconfluent_kafka.adminimportAdminClient,......
  • 解决Java 线程池 共享变量的具体操作步骤
    实现Java线程池共享变量的步骤为了实现Java线程池共享变量,我们需要以下步骤:步骤描述步骤一创建一个线程池步骤二创建一个共享变量步骤三在需要共享变量的地方,使用线程池提交任务步骤四在任务中使用共享变量进行操作下面我将详细介绍每一步的操作和所需......
  • 解决Java 线程安全的DateFormat的具体操作步骤
    Java线程安全的DateFormat在多线程的环境下使用Java的SimpleDateFormat类进行日期格式化操作时,可能会遇到线程安全的问题。这篇文章将会介绍为什么SimpleDateFormat不是线程安全的,以及如何解决这个问题。为什么SimpleDateFormat不是线程安全的?SimpleDateFormat是Java中用于格......
  • Python 爬虫实战:驾驭数据洪流,揭秘网页深处
    爬虫,这个经常被人提到的词,是对数据收集过程的一种形象化描述。特别是在Python语言中,由于其丰富的库资源和良好的易用性,使得其成为编写爬虫的绝佳选择。本文将从基础知识开始,深入浅出地讲解Python爬虫的相关知识,并分享一些独特的用法和实用技巧。本文将以实际的网站为例,深入阐述各......
  • 一个C++11的线程函数
    一个C++11的线程函数#include<iostream>#include<thread>#include<chrono>voidprintNumbers(){for(inti=1;i<=100;++i){std::cout<<i<<std::endl;std::this_thread::sleep_for(std::chrono::millis......
  • 编程实用工具推荐
    一、截图神器1、SnipasteSnipaste,一款简单强大的截图贴图利器下载地址:Snipaste二、命名神器1、CodelfCodelf通过搜索在线开源平台Github,Bitbucket,GoogleCode,Codeplex,Sourceforge,FedoraProjec的项目源码,帮开发者从中找出已有的匹配关键字的变量名。这个搜索......