合集-python高级

摘要:创建进程步骤 1. 导入进程包 import multiprocessing 2. 通过进程类创建进程对象 进程对象 = multiprocessing.Process() #是Process类 3. 启动进程执行任务 进程对象.start() 示例 1 # 1. 导入多进程模块 2 import 阅读全文
posted @ 2023-07-23 17:18 Allen_Hao 阅读(60) 评论(0) 推荐(0) 编辑
摘要:''' multiprocessing.Process 类是 multiprocessing 模块中用于创建和管理进程的主要类。它提供了一系列方法和属性,用于控制和监视进程的行为。 1. 创建 Process对象: 语法: p = Process(target=func, args=(args,), 阅读全文
posted @ 2023-07-23 17:28 Allen_Hao 阅读(153) 评论(0) 推荐(0) 编辑
摘要:说明 进程间除了主子进程共享数据,也可以通过进程间通信实现交互、数据共享 multiprocessing 提供了多种方式来实现进程间通信,如管道(Pipe)、队列(Queue)和共享内存(Value 和 Array)等。 通过这些机制,不同进程之间可以安全地共享数据或进行通信 进程间是不共享全局变量 阅读全文
posted @ 2023-07-23 17:48 Allen_Hao 阅读(37) 评论(0) 推荐(0) 编辑
摘要:''' multiprocessing 还提供了进程池(Pool)的功能,可以方便地管理一组工作进程。 进程池中的多个进程可以被重复使用,以执行多个任务,并在完成任务后自动回收进程。 ''' from multiprocessing import Pool def worker(x): return 阅读全文
posted @ 2023-07-23 17:59 Allen_Hao 阅读(50) 评论(0) 推荐(0) 编辑
摘要:锁 在multiprocessing模块中,可以使用Lock(锁)来实现进程间的同步。Lock提供了一种机制,确保在任意时刻只有一个进程能够访问共享资源。 Lock的工作原理 Lock是一种互斥锁,用于保护共享资源的访问。当一个进程获得了锁之后,其他进程将被阻塞,直到锁被释放。只有释放锁的进程才能继 阅读全文
posted @ 2023-07-23 18:17 Allen_Hao 阅读(109) 评论(0) 推荐(0) 编辑
摘要:os.kill是Python中用于向指定进程发送信号的函数。通过os.kill可以发送各种不同的信号,其中最常见的是SIGTERM信号,用于请求进程正常终止 os.kill的工作原理 os.kill函数允许我们向指定的进程发送信号。进程收到信号后,根据信号类型的不同,可以执行相应的处理逻辑。比如,S 阅读全文
posted @ 2023-07-23 18:40 Allen_Hao 阅读(713) 评论(0) 推荐(0) 编辑
摘要:守护进程(Daemon Process)是在后台运行的一种特殊类型的进程,它不会受到终端控制和交互的影响。守护进程通常用于执行一些系统级的任务或服务,比如网络服务、定时任务等。 ''' 1. 创建守护进程: 1. 在Python中,可以通过multiprocessing模块来创建守护进程。使用mul 阅读全文
posted @ 2023-07-23 19:02 Allen_Hao 阅读(36) 评论(0) 推荐(0) 编辑
摘要:在Python中,想要实现多任务还可以使用多线程来完成。用于IO密集型任务,是cpu调度的最小单位 为什么使用多线程?--节省资源(IO密集型任务) 1. 进程是分配资源的最小单位 , 一旦创建一个进程就会分配一定的资源 , 就像跟两个人聊QQ就需要打开两个QQ软件一样是比较浪费资源的 . 2. 线 阅读全文
posted @ 2023-07-28 00:17 Allen_Hao 阅读(29) 评论(0) 推荐(0) 编辑
摘要:步骤 1. 导入线程模块 import threading 2. 创建子线程并指定执行的任务 sub_thread = threading.Thread(target=任务名 3. 启动线程执行任务 sub_thread.start() 示例 1 ''' 2 在Python中,实现多线程多任务可以通 阅读全文
posted @ 2023-07-28 23:08 Allen_Hao 阅读(113) 评论(0) 推荐(0) 编辑
摘要:1 ''' 2 threading.Thread类是Python threading模块中用于创建和管理线程的主要类。它可以通过子类化并重写run()方法来定义自己的线程逻辑。一般会使用线程池 3 1. 构造器: 4 threading.Thread类的构造器如下: 5 class threadin 阅读全文
posted @ 2023-07-28 23:26 Allen_Hao 阅读(488) 评论(0) 推荐(0) 编辑
摘要:''' 在Python中,使用threading.Thread类创建守护线程可以通过设置daemon参数为True来实现。 守护线程是一种特殊的线程,它会随着主线程的结束而自动退出(守护线程会随着主线程的结束而自动退出。因此,如果主线程先结束,守护线程也会立即退出,无论守护线程是否执行完成。),无需 阅读全文
posted @ 2023-07-28 23:37 Allen_Hao 阅读(49) 评论(0) 推荐(0) 编辑
摘要:python 多线程并不是真正的并行执行,而java的多线程是真正的并行执行 python 在Python中,由于全局解释器锁(GIL)的存在,多线程并不能实现真正的并行执行。 GIL是一种机制,它限制了同一时刻只能有一个线程执行Python字节码,这意味着在多线程环境下,多个线程并不能同时执行CP 阅读全文
posted @ 2023-07-29 07:55 Allen_Hao 阅读(150) 评论(0) 推荐(0) 编辑
摘要:IO密集型 1. IO密集型任务是指在执行过程中主要涉及到输入输出(IO)操作的任务。这些任务通常需要与外部资源进行交互,如读写文件、网络请求、数据库查询等,而实际的计算量相对较小。 2. 在IO密集型任务中,CPU的使用率相对较低,大部分时间都花费在等待IO操作完成上。因此,多线程在这种情况下能够 阅读全文
posted @ 2023-07-29 09:10 Allen_Hao 阅读(977) 评论(0) 推荐(0) 编辑
摘要:线程之间共享全局变量 多个线程都是在同一个进程中 , 多个线程使用的资源都是同一个进程中的资源 , 因此多线程间是共享全局变量 问题 示例 1 import threading 2 3 4 # 全局变量 5 g_num = 0 6 7 8 # 对g_num进行加操作 9 def sum_num1() 阅读全文
posted @ 2023-07-29 11:35 Allen_Hao 阅读(606) 评论(0) 推荐(0) 编辑
摘要:什么是竞态条件? 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 示例1: ''' 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 ''' import threading # 共享变量 counter 阅读全文
posted @ 2023-07-29 12:01 Allen_Hao 阅读(99) 评论(0) 推荐(0) 编辑
摘要:在Python中,可以使用互斥锁(Mutex)来实现线程之间的互斥访问,保证共享资源的安全性。互斥锁可以确保在任何时刻只有一个线程可以持有锁,并且其他线程必须等待锁的释放才能继续执行。 步骤 1. 创建互斥锁对象: lock = threading.Lock() 通过threading.Lock() 阅读全文
posted @ 2023-07-29 12:24 Allen_Hao 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1 import threading 2 3 4 # 全局变量 5 g_num = 0 6 7 8 # 对g_num进行加操作 9 def sum_num1(): 10 # 上锁 11 print("sun_num1...") 12 print(f"sum_num1 id(mutex) {id(mu 阅读全文
posted @ 2023-07-29 12:32 Allen_Hao 阅读(13) 评论(0) 推荐(0) 编辑
摘要:在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。线程池提供了一种方便的方式来处理并发任务,可以有效地利用系统资源,提高程序的性能。 ''' 在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。 阅读全文
posted @ 2023-07-29 15:14 Allen_Hao 阅读(25) 评论(0) 推荐(0) 编辑
摘要:在Python中,进程(Process)和线程(Thread)都是用于实现并发执行的机制,但它们有一些重要的区别。 执行方式:进程是程序的一次执行过程,具有独立的内存空间,每个进程都有自己的代码段、数据段和堆栈;而线程是在进程内部执行的,共享进程的内存空间,包括代码段、数据段和堆栈。 资源占用:由于 阅读全文
posted @ 2023-07-29 15:28 Allen_Hao 阅读(36) 评论(0) 推荐(0) 编辑
摘要:函数参数 Python中一切皆引用:变量名(包括类名和函数名等)存放的都是内存空间(地址),所以都可以作为参数传递 函数名的作用 ① 函数名存放的是函数所在空间的地址 ② 函数名()执行函数名所存放空间地址中的代码 ③ func01 = func02函数名可以像普通变量一样赋值,func01() 等 阅读全文
posted @ 2023-08-26 16:22 Allen_Hao 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示