当前位置: 首页 > wzjs >正文

最轻快的wordpress主題宁波优化网站哪家好

最轻快的wordpress主題,宁波优化网站哪家好,美工需要会哪些软件,python做网站的多吗一、什么是进程? 进程(Process):操作系统分配资源的最小单位。每个运行中的程序就是一个进程。线程(Thread):进程内最小的执行单元,可看作轻量级进程。 💡 Python 的多…

一、什么是进程?

  • 进程(Process):操作系统分配资源的最小单位。每个运行中的程序就是一个进程。
  • 线程(Thread):进程内最小的执行单元,可看作轻量级进程。

💡 Python 的多线程受 GIL 限制,在 CPU 密集型任务中难以实现真正的并行。多进程是绕过 GIL、充分利用多核 CPU 的推荐方式。


二、基础用法:multiprocessing.Process

1. 创建进程

from multiprocessing import Process
import os, timedef task():time.sleep(2)print('子进程ID:', os.getpid())if __name__ == '__main__':print('主进程ID:', os.getpid())processes = []for _ in range(10):p = Process(target=task)p.start()processes.append(p)for p in processes:p.join()

2. 常用参数和方法

属性 / 方法说明
target执行函数
args / kwargs传参
start()启动进程
join(timeout)阻塞等待
is_alive()是否仍在运行
terminate()终止进程
daemon设置是否为守护进程
pid / exitcode进程 ID / 退出码

三、进程池:multiprocessing.Pool

1. 创建进程池并提交任务

from multiprocessing import Pool
import timedef task(name):time.sleep(2)print(f"{name} 执行完毕")if __name__ == '__main__':pool = Pool(processes=4)for i in range(6):pool.apply_async(task, args=(f"任务{i}",))  # 非阻塞方式pool.close()pool.join()

2. 方法说明

方法描述
apply()阻塞提交
apply_async()非阻塞提交,支持回调函数
close() / join()关闭进程池 / 等待结束

四、进程间通信

1. 使用 Pipe(管道)

from multiprocessing import Pipe, Processdef send_data(conn, data):conn.send(data)def receive_data(conn):print(conn.recv())if __name__ == '__main__':conn1, conn2 = Pipe()Process(target=send_data, args=(conn1, 'Hello')).start()Process(target=receive_data, args=(conn2,)).start()

2. 使用 Queue(队列)

from multiprocessing import Queue, Processdef set_data(q, val):q.put(val)def get_data(q):print(q.get())if __name__ == '__main__':q = Queue()Process(target=set_data, args=(q, '数据')).start()Process(target=get_data, args=(q,)).start()

五、进程同步(锁)

1. 不加锁的输出(可能混乱)

from multiprocessing import Process
import os, timedef task():print(f"{os.getpid()} start")time.sleep(2)print(f"{os.getpid()} end")for _ in range(3):Process(target=task).start()

2. 加锁保证输出顺序

from multiprocessing import Process, Lock
import os, timedef task(lock):with lock:print(f"{os.getpid()} start")time.sleep(2)print(f"{os.getpid()} end")if __name__ == '__main__':lock = Lock()for _ in range(3):Process(target=task, args=(lock,)).start()

六、共享状态

1. 使用共享内存:ValueArray

from multiprocessing import Process, Value, Arraydef modify(shared_num, shared_arr):shared_num.value = 100.5for i in range(len(shared_arr)):shared_arr[i] = -shared_arr[i]if __name__ == '__main__':num = Value('d', 0.0)arr = Array('i', range(5))p = Process(target=modify, args=(num, arr))p.start()p.join()print(num.value)print(arr[:])

2. 使用 Manager 提供的共享对象

from multiprocessing import Process, Managerdef modify(shared_dict, shared_list):shared_dict[1] = '一'shared_list.reverse()if __name__ == '__main__':with Manager() as manager:d = manager.dict()l = manager.list(range(5))p = Process(target=modify, args=(d, l))p.start()p.join()print(d)print(l)

七、实战总结

应用场景推荐方案原因说明
CPU 密集型任务多进程绕过 GIL,真正多核并行
I/O 密集型任务多线程 / 协程利用线程或异步释放等待时间
多任务并发管理进程池(Pool)简化进程创建与调度,避免资源浪费
多进程通信Pipe / Queue实现进程间数据传输
状态共享Value / Array / Manager灵活、安全地在进程间共享数据

八、推荐阅读

  • 📚 官方文档:multiprocessing — Process-based parallelism
http://www.dtcms.com/wzjs/500652.html

相关文章:

  • 漯河装修公司网站建设360网站收录提交
  • wordpress avada 3.4.3 中文seo网络营销公司
  • 公众号开发助手网站页面优化方法
  • 通州做网站公司山东网页定制
  • 宣传商务型的网站seo免费视频教程
  • 电子商务名词解释seo优化排名是什么
  • 大气的门户网站小网站搜什么关键词
  • 企业网站维护工作产品推广方案范文500字
  • 免费b站在线观看人数在哪里竞价排名广告
  • 公司网站的建设内容怎么写百度快照优化的优势是什么
  • 网站做多个单页链接seo整站优化更能准确获得客户
  • 包头网站建设良居网络站长统计幸福宝
  • 网站登录怎么保存用户名密码泰安网站建设优化
  • 旅游网站繁体aspaso安卓优化公司
  • 安康做网站哪家好营销战略有哪些内容
  • 哈尔滨关键词优化平台长沙谷歌seo
  • 初创品牌网站建设郑州网站优化seo
  • flash打开网站源码河北网站建设制作
  • 鹤壁做网站网络营销策划方案的目的
  • 如何让网站互动起来制作app平台需要多少钱
  • 桌面上链接网站怎么做短期职业技能培训班
  • 苏州网站制作专业seo网址大全
  • 手机端网站推广营业推广是什么
  • 电脑要登入国外的网站应该怎么做外贸接单网站
  • 长沙网站开发培训学校适合发表个人文章的平台
  • 全国疫情一览表图长沙网站seo哪家公司好
  • 网站网页建设实训心得怎么做网络推广最有效
  • 企业站模板明细武汉seo关键词排名
  • 艺术学院网站模板百度网络营销中心客服电话
  • 生成链接的网站百度软件应用市场