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

怎么建设网站服务器手机端网站整站下载

怎么建设网站服务器,手机端网站整站下载,中国没公司怎么做网站,wordpress news theme🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

在这里插入图片描述

🌈个人主页: 程序员不想敲代码啊
🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家
👍点赞⭐评论⭐收藏
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!

在这里插入图片描述

🎶Python多线程

  • 🎶1. 前言
  • 🎶2. threading 模块的基本用法
  • 🎶3. Thread类
  • 🎶4. 锁(Locks)
  • 🎶5. 守护线程(Daemon Threads)
  • 🎶6. 运用场景
  • 🎶7. 弊端

🎶1. 前言

🚨Python中的多线程通过threading模块来实现,它允许你并发执行多个线程,线程是操作系统能够独立调度的最小单位,它通常被用来执行并行任务。

🚨在解释Python的多线程之前,需要注意的是,由于全局解释器锁(Global Interpreter Lock,GIL)的存在,CPython(Python的主要实现版本)中的多线程通常不能在多个CPU核心中并行执行,GIL确保一次只有一个线程在Python对象上执行操作,防止并发访问导致的状态不一致。因此,Python的多线程更适用于I/O密集型任务而非CPU密集型任务。

🎶2. threading 模块的基本用法

🚨以下是使用threading模块创建和启动一个线程的基本例子:

import threading
import time# 定义一个函数用于线程执行
def my_function(arg1, arg2):for i in range(arg1, arg2):print(f"Thread running: {i}")time.sleep(1) # 模拟耗时操作# 创建线程
thread = threading.Thread(target=my_function, args=(1, 10))# 启动线程
thread.start()# 在主线程中继续执行其他操作
for i in range(20, 25):print(f"Main thread running: {i}")time.sleep(1)# 等待直到线程完成
thread.join()

🎶3. Thread类

🚨在threading模块里,Thread是一个代表线程的类,你可以创建一个Thread类的实例并调用它的start()方法来运行新线程。每个Thread可以运行一个函数或方法。

🚨除了直接使用threading.Thread,你也可以通过继承Thread类来定义新的线程子类,重写其中的run()方法:

class MyThread(threading.Thread):def __init__(self, arg1, arg2):super().__init__()self.arg1 = arg1self.arg2 = arg2def run(self):for i in range(self.arg1, self.arg2):print(f"Running from the extended thread class: {i}")time.sleep(1)# 使用自定义线程类
thread = MyThread(1, 5)
thread.start()
thread.join()

🎶4. 锁(Locks)

🚨锁是一个同步原语,用于防止多个线程同时访问共享资源,在Python中,你可以使用threading.Lock()来创建一个锁。锁有两个基本方法,acquire()release()。当一个线程通过调用acquire()获得了锁,它会阻止其他线程获取直到它调用release()释放锁。

# 创建一个锁
lock = threading.Lock()# 在需要访问共享资源前获取锁
lock.acquire()# 访问共享资源
# ...# 完成共享资源的访问后释放锁
lock.release()

🚨可以使用 with 语句简化以上模式,这样可以保证锁被正确释放:

with lock:# 访问共享资源# ...

🎶5. 守护线程(Daemon Threads)

🚨守护线程是一种特殊的线程,它在主线程退出时也会随之退出,与常规线程相比,守护线程不用等待它完成才能退出程序。通过设置线程的daemon属性为True,可以将线程声明为守护线程:

thread = threading.Thread(target=my_function, args=(1, 10))
thread.daemon = True
thread.start()

🎶6. 运用场景

🚨在Python中,多线程经常被用于处理I/O密集型任务,例如文件读写、网络通讯等等。对于CPU密集型任务,多进程通常是更好的选择。

🎶7. 弊端

🚨由于GIL的存在,在CPython的多线程程序不会真正地并行执行多线程,即使在多核CPU上。为了克服这个限制,可以考虑使用multiprocessing模块,这个模块通过创建多个进程来实现真正的并行计算(每个进程有自己的GIL)。当然,每个场景下都需要仔细考虑是否适合多线程、多进程或者其他解决方案,比如异步编程(asyncio)或者其他并发框架(如concurrent.futures)。

http://www.yayakq.cn/news/909951/

相关文章:

  • 英文网站建设解决方案三水专业网站建设哪家好
  • 塘沽做网站公司科技与生活
  • 装饰网站建设效果图哪个网站的字体做的特别好
  • 织梦手机网站制作教程杭州软件app制作公司
  • 网站开发包含上线吗网站都是哪里找的
  • 黄页引流推广网站入口做一个网站大概多少钱
  • 怎样制作静态网站网站建设是做什么
  • 生鲜网站建设费用广东网站建设公司哪家便宜
  • 建一个网站问谁广东省公路建设有限公司网站
  • 淘宝做网站退款家庭装修设计软件哪个好用
  • 网站上的图片怎么做网站的交流的功能怎么做
  • 佛山市建设企业网站服务机构二级不死域名购买
  • 机票便宜 网站建设白杨seo课程
  • 想美团这样的网站怎么做计算机网络培训速成班
  • 青岛网站排名苏州网站制作专业
  • 青海省城乡建设网站带域名的网站打不开
  • 深圳罗湖医疗集团网站建设企业手机网站建设新闻
  • 百度做直播和短视频网站如何自定义wordpress登录
  • 怎样做网站后台运营html水平导航栏怎么做
  • 安阳哪里做360网站做金融资讯网站需要哪些牌照
  • dedecms 百度网站地图淘宝关键词排名
  • 龙岗网站建设szaow点击图片是网站怎么做
  • 做外贸无网站如何做做网站能挣钱不
  • 免费门户网站源码南充做网站略奥网络
  • 做网站服务器需要系统网站加载速度慢的原因
  • 网站图标ico 设置深圳集团网站建设公司好
  • 成都平台网站建设公司沈阳seo排名优化推广
  • 网站开发项目意义河南省实名举报
  • 深圳送花网站哪个好中国十大人力资源公司
  • 昌吉州住房和城乡建设局网站网站开发合同官司