iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python进程/线程/协程相关
  • 598
分享到

Python进程/线程/协程相关

线程进程Python 2023-01-31 07:01:37 598人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1、获取进程ID。(getpid)os.getpid()2、获取父进程ID。(getppid)os.getppid()3、获取线程ID。(get_ident)(1)、进程内局部标识。import threading threading.ge

1、获取进程ID。(getpid)

os.getpid()

2、获取父进程ID。(getppid)

os.getppid()

3、获取线程ID。(get_ident)

(1)、进程内局部标识。

import threading
threading.get_ident()
threading.current_thread().ident

(2)、系统全局标识:python下使用ctypes获取threading线程id。


【使用线程池完成阻塞型任务】

#encoding=utf-8
#author: walker
#date: 2017-03-27
#summary: 使用线程池完成阻塞型任务
#Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
 
import time
import random
import threading
import concurrent.futures

#同步型任务
def TaskSync(taskid, sleepTime):
	print('thread_%05d %s sleep %d ...' % (threading.get_ident(), taskid, sleepTime))
	time.sleep(sleepTime)	#睡觉任务
	print('\t\tthread_%05d %s sleep %d over' % (threading.get_ident(), taskid, sleepTime))
	return taskid, sleepTime
	
#处理所有任务	
def ProcAll(taskList):
	pool = concurrent.futures.ThreadPoolExecutor(4)	
	futureList = list()
	for taskid, sleepTime in taskList:	#提交所有任务
		futureList.append(pool.submit(TaskSync, taskid, sleepTime))
	
	totalSleepTime = 0
	for future in concurrent.futures.as_completed(futureList):
		task, sleepTime = future.result()
		print('\t\t\t\t\t\t%s sleep %d over' % (task, sleepTime))
		totalSleepTime += sleepTime
		
	return totalSleepTime
	
if __name__ == '__main__':
	startTime = time.time()
	taskList = [('task_%d' % id, random.randint(1, 5)) for id in range(0, 9)]
	print('taskList:%s' % repr(taskList))
	totalSleepTime = ProcAll(taskList)
	print('totalSleepTime: %d s' % totalSleepTime)
	print('real cost time:%.2f' % (time.time() - startTime))

【使用单线程完成异步型任务】

#encoding=utf-8
#author: walker
#date: 2017-03-27
#summary: 使用单线程完成异步型任务
#Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
 
import asyncio
import time
import random

#协程型任务	
async def TaskAsync(taskid, sleepTime):
	print('%s sleep %d ...' % (taskid, sleepTime))
	await asyncio.sleep(sleepTime)	#睡觉任务
	print('\t%s sleep %d over' % (taskid, sleepTime))
	return taskid, sleepTime

#处理所有任务
async def ProcAll(taskList):
	coroutineList = list()
	for taskid, sleepTime in taskList:
		coroutineList.append(asyncio.ensure_future((TaskAsync(taskid, sleepTime))))	
	
	totalSleepTime = 0
	for f in asyncio.as_completed(coroutineList):
		task, sleepTime = await f
		print('\t\t\t%s sleep %d over' % (task, sleepTime))
		totalSleepTime += sleepTime
	return totalSleepTime

if __name__ == '__main__':
	startTime = time.time()
	taskList = [('task_%d' % id, random.randint(1, 5)) for id in range(0, 9)]
	print('taskList:%s' % repr(taskList))
	loop = asyncio.get_event_loop()
	totalSleepTime = loop.run_until_complete(ProcAll(taskList))
	print('totalSleepTime: %d s' % totalSleepTime)
	print('real cost time:%.2f' % (time.time() - startTime))


相关阅读:

1、Python自定义进程池(生产者/消费者模型)

2、asyncio — Asynchronous I/O, event loop, coroutines and tasks

3、concurrent.futures — Launching parallel tasks

4、multiprocessing — Process-based parallelism

5、协程与async/await语法(PEP 0492 Coroutines with async and await syntax 中文翻译

6、Python协程:从yield/send到async/await


*** walker ***


--结束END--

本文标题: Python进程/线程/协程相关

本文链接: https://www.lsjlt.com/news/191075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python进程/线程/协程相关
    1、获取进程ID。(getpid)os.getpid()2、获取父进程ID。(getppid)os.getppid()3、获取线程ID。(get_ident)(1)、进程内局部标识。import threading threading.ge...
    99+
    2023-01-31
    线程 进程 Python
  • Python进程/线程/协程
    第1章 操作系统历史1.1为什么要有操作系统?程序员无法把所有的硬件操作细节全部了解到,管理这些硬件并且加以优化使用时非常繁琐的工作,这个繁琐的工作就是由操作系统来干的,有了它,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(7)——
         前面转载了一篇分析进程池源码的博文,是一篇分析进程池很全面的文章,点击此处可以阅读。在Python中还有一个线程池的概念,它也有并发处理能力,在一定程度上能提高系统运行效率;不正之处欢迎批评指正。     线程的生命周期可以分为5...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(3)——
        Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式。该模块提供了三种队列:Queue.Queue(maxsize):先进先出,maxsize是队列的大小,其值为非正数时为无线循环队列Queue.LifoQueue...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(2)—
        上一篇博文介绍了Python中线程、进程与协程的基本概念,通过这几天的学习总结,下面来讲讲Python的threading模块。首先来看看threading模块有哪些方法和类吧。主要有:Thread :线程类,这是用的最多的一个类,...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(1)——
            最近的业余时间主要放在了学习Python线程、进程和协程里,第一次用python的多线程和多进程是在两个月前,当时只是简单的看了几篇博文然后就跟着用,没有仔细去研究,第一次用的感觉它们其实挺简单的,最近这段时间通过看书, 看...
    99+
    2023-01-31
    线程 进程 Python
  • Python:线程、进程与协程(6)——
        上篇博文介绍了multiprocessing模块的内存共享(点击此处可以参看),下面讲进程池。有些情况下,所要完成的工作可以上篇博文介绍了multiprocessing模块的内存共享,下面讲进程池。有些情况下,所要完成的工作可以分解...
    99+
    2023-01-31
    线程 进程 Python
  • 如何理解Python进程、线程、协程
    本篇内容介绍了“如何理解Python进程、线程、协程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是进...
    99+
    2024-04-02
  • Python 中的进程、线程、协程、同步
    进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生?在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享《Pyt...
    99+
    2023-01-31
    线程 进程 Python
  • Python多线程与多进程相关知识总结
    目录一、什么是进程二、什么是线程三、并发、并行3.1 并发3.2 并行四、多线程适用场景五、Python GIL六、Python多线程、多进程实例:CPU 密集型任务6.1 单线程6...
    99+
    2024-04-02
  • python线程、协程
    线程Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。更多方法:start            线程准备就绪,等待CPU调度setName      为线程设置名称getName      获取线程名称setDae...
    99+
    2023-01-31
    线程 python 协程
  • 线程、进程、协程和GIL(三)
    上一篇文章介绍了:创建线程的两种方式、Event对象判断线程是否启动、利用信号量控制线程并发。 博客链接:线程、进程、协程和GIL(二) 这一篇来说说线程间通信的那些事儿:    一个线程向另一个线程发送数据最安全的方式就是使用queue...
    99+
    2023-01-30
    线程 进程 GIL
  • 什么是进程、线程、协程
    什么是进程? 我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序则是具有某种功能的程序,程序是运行于操...
    99+
    2023-09-06
    java jvm linux
  • 实例详解Python的进程,线程和协程
    目录前言前提条件相关介绍实验环境进程多进程用进程池对多进程进行操作线程使用_thread模块实现使用 threading 模块实现协程使用asyncio模块实现总结前言 本文用Pyt...
    99+
    2024-04-02
  • Python的进程,线程和协程实例分析
    这篇“Python的进程,线程和协程实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的进程,线程和协程实例...
    99+
    2023-06-29
  • Python的进程,线程和协程实例详解
    目录相关介绍实验环境进程多进程用进程池对多进程进行操作线程使用_thread模块实现使用 threading 模块实现协程使用asyncio模块实现总结相关介绍 Python是一种跨...
    99+
    2024-04-02
  • python之线程相关操作
    1.线程: 一个进程可以有多个线程,共享一个进程的资源; 2.进程线程的区别:    进程是资源分配的最小单位,线程是程序执行的最小单位 3.python中线程模块threading, 提供的类: Thread, Lock, Rlock,...
    99+
    2023-01-30
    线程 操作 python
  • python中强制关闭线程、协程与进程的方法是什么
    这篇“python中强制关闭线程、协程与进程的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python中强制关闭...
    99+
    2023-07-05
  • 一文搞懂Python中的进程,线程和协程
    目录1.什么是并发编程2.进程与多进程3.线程与多线程4.协程与多协程5.总结1.什么是并发编程 并发编程是实现多任务协同处理,改善系统性能的方式。Python中实现并发编程主要依靠...
    99+
    2024-04-02
  • swoole协程是进程还是线程
    今天小编给大家分享一下swoole协程是进程还是线程的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。swoole协程是属于线程...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作