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

快递加盟代理搜索引擎优化哪些方面

快递加盟代理,搜索引擎优化哪些方面,最受关注的十大公众号,app store下载正版一、线程和进程对应的问题 **1.进程:**CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可…

一、线程和进程对应的问题

**1.进程:**CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。
**2.线程:**IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I/O (硬盘/内存) 的读/写操作,此时CPU Loading并不高。

二、进程

定义:进程是程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。
每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)
CPython解释器本身就不是线程安全的,因此有全局解释器锁(GIL),一次只允许使用一个线程执行Python字节码。因此,一个Python进程通常不能同时使用多个CPU核心。
在这里插入图片描述
Python中的多进程实现:
futures.ProcessPoolExecutor类。现在流行multiprocessing模块。

import multiprocessing# 定义一个函数,用于在多个进程中执行任务
def worker_function(index):print(f"Worker {index} started")result = index * 2print(f"Worker {index} result: {result}")print(f"Worker {index} finished")if __name__ == "__main__":# 创建一个进程池,可以指定要创建的进程数(这里为3)num_processes = 3pool = multiprocessing.Pool(processes=num_processes)# 使用进程池执行任务# 这里将任务分配给三个进程并行执行pool.map(worker_function, range(num_processes))# 关闭进程池,等待所有进程完成pool.close()pool.join()print("All workers have finished")

还有一种更简单的,使用

https://zhuanlan.zhihu.com/p/509084322

三、线程

进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据。
在这里插入图片描述
线程和进程都具有一砂锅五个状态。
Python中的实现:

import threading# 定义一个函数,用于在线程中执行任务
def worker_function(thread_id):print(f"Thread {thread_id} started")# 在这里可以执行一些任务print(f"Thread {thread_id} finished")if __name__ == "__main__":# 创建多个线程num_threads = 3threads = []for i in range(num_threads):thread = threading.Thread(target=worker_function, args=(i,))threads.append(thread)# 启动所有线程for thread in threads:thread.start()# 等待所有线程完成for thread in threads:thread.join()print("All threads have finished")

四、二者的区别

多进程和多线程都是用于并发编程的技术,但它们有一些共性和区别:

共性:

  1. 并发性: 无论是多进程还是多线程,它们都允许在程序中执行多个任务,并在不同的执行上下文中交替执行这些任务,从而实现并发性。

  2. 共享资源: 多进程和多线程都可以访问共享的内存资源,这允许多个任务之间进行数据交换和共享数据。

  3. 并行执行: 在多核或多 CPU 的系统上,多进程和多线程都可以实现真正的并行执行,从而提高程序的性能。

区别:

  1. 独立性:

    • 多进程:每个进程都有独立的内存空间和 Python 解释器,它们之间彼此独立,因此一个进程的错误通常不会影响其他进程。
    • 多线程:所有线程共享同一进程的内存空间,它们之间共享全局变量和数据。因此,一个线程的错误可能会影响其他线程和整个进程。
  2. 创建和销毁:

    • 多进程:创建和销毁进程通常比较慢,并且需要更多的系统资源,因为每个进程都有独立的内存空间。
    • 多线程:创建和销毁线程通常更快,因为它们共享进程的内存空间,但线程之间的管理和同步可能更复杂。
  3. 并发性和并行性:

    • 多进程:可以在多个 CPU 上并行执行,因此适用于 CPU 密集型任务。然而,多进程之间的通信开销相对较高。
    • 多线程:在单个 CPU 上的并发性较强,适用于 I/O 密集型任务,但由于 GIL 的存在,多线程不能实现真正的多核并行。
  4. 同步和锁:

    • 多进程:通常需要使用进程间通信(Inter-Process Communication,IPC)机制来实现进程之间的协作,例如管道、队列和共享内存。
    • 多线程:线程之间可以更容易地共享数据,但需要使用锁(例如互斥锁)来确保线程安全。
  5. 资源开销:

    • 多进程:通常比多线程消耗更多的内存和系统资源。
    • 多线程:相对较轻量,消耗的资源较少。
http://www.shuangfujiaoyu.com/news/41174.html

相关文章:

  • dreamweaver做网站教程网站运营工作的基本内容
  • 子页面的网站地址怎么做网络营销组织的概念
  • 如何自己做网站腾讯关键词在线听免费
  • 有什么做logo网站论坛推广的特点
  • 太原网站排名推广网页制作素材模板
  • 怎么制作一个个人网站生意参谋官网
  • 深圳珠宝网站设计网购网站十大排名
  • cms 导航网站免费建站的网站
  • 网页制作方案策划seo网站推广的主要目的包括
  • 做二手车放在哪个网站好企业网站制作流程
  • 品牌网站的推广b2b和b2c是什么意思
  • 电商网站建设实施方案微信广点通广告平台
  • 天鸿建设集团有限公司 网站互联网营销师证书怎么考多少钱
  • 企业墙面设计珠海seo排名收费
  • 建设商城网站制作营销型网站模板
  • 哪些网站做兼职可靠做网站哪家好
  • 2 试列出网站开发建设的步骤东莞疫情最新通知
  • 大城 网站建设怎么在百度上发布广告
  • seo短视频网页入口引流网站推荐seo的优点和缺点
  • 动态网站构建应用教程百度知道电脑版网页入口
  • 成都建工雅安建设有限责任公司网站教师遭网课入侵直播录屏曝光广场舞
  • 微信公众平台微网站怎么做腾讯云域名注册
  • 怎么做公司网站的手机客户端网站建设知名公司
  • 关于网站建设的介绍百度指数电脑版
  • 做网站主机要选好seo实战培训
  • 建设工程协会网站查询长沙seo行者seo09
  • 网站专业制作杭州seo首页优化软件
  • 网页搜索栏下面的记录怎么删百度seo多少钱一个月
  • 建站快车登陆seo排名优化北京
  • seo网站优化软件seo营销排名