我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中怎么搭建多线程环境

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中怎么搭建多线程环境

Python中怎么搭建多线程环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在Python的thread module所提供的接口中,一定不能少的肯定是创建线程的接口,倘若没有这个接口,生活还有什么意义呢J?在上面的thread1.py中,我们正是通过其提供的start_new_thread创建了一个崭新的线程。好,我们就进入这个start_new_ thread,看看Python是如何进行创世纪的工作的。

[threadmodule.c]   static PyObject* thread_PyThread_start_new_thread(PyObject *self, PyObject     *fargs)   {       PyObject *func, *args, *keyw = NULL;       struct bootstate *boot;       long ident;       PyArg_UnpackTuple(fargs, "start_new_thread", 2, 3, &func, &args,         &keyw);       //[1]:创建bootstate结构       boot = PyMem_NEW(struct bootstate, 1);       boot->interp = PyThreadState_GET()->interp;       boot->funcfunc = func;       boot->argsargs = args;       boot->keywkeyw = keyw;       //[2]:初始化多线程环境       PyEval_InitThreads();        //[3]:创建线程       ident = PyThread_start_new_thread(t_bootstrap, (void*) boot);       return PyInt_FromLong(ident);   }

代码清单15-1的[1]、[2]和[3]分别有如下含义:

[1]  创建并初始化bootstate结构boot,在boot中,将保存关于线程的一切信息,如:线程过程,线程过程的参数等。

[2]  初始化Python多线程环境。

[3]  以boot为参数,创建操作系统的原生线程。

在代码清单15-1的[1]中,我们注意到boot->interp中保存了Python的PyInter- preterState对象,这个对象中携带了Python的module pool这样的全局信息,Python中所有的thread都会共享这些全局信息。关于代码清单15-1的[2]处所示的多线程环境的初始化动作,有一点需要特别说明,当Python启动时,是并不支持多线程的。

换句话说,Python中支持多线程的数据结构以及GIL都是没有创建的,Python之所以有这种行为是因为大多数的Python程序都不需要多线程的支持。假如一个简单地统计词频的Python脚本中居然出现了多线程,面对这样的代码,我们一定都会抓狂的J。

对多线程的支持并非是没有代价的,最简单的一点,如果激活多线程机制,而执行的Python程序中并没有多线程,那么在100条指令之后,Python虚拟机同样会激活线程的调度。而如果不激活多线程,Python多线程环境虚拟机则不用做这些无用功。所以Python选择了让用户激活多线程机制的策略。在Python虚拟机启动时。

多线程机制并没有被激活,它只支持单线程,一旦用户调用thread.start_new_thread,明确指示Python虚拟机创建新的线程。Python就能意识到用户需要多线程的支持,这个时候,Python多线程环境会自动建立多线程机制需要的数据结构、环境以及那个至关重要的GIL。

看完上述内容,你们掌握Python中怎么搭建多线程环境的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中怎么搭建多线程环境

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

下载Word文档

猜你喜欢

Python中怎么搭建多线程环境

Python中怎么搭建多线程环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Python的thread module所提供的接口中,一定不能少的肯定是创建线程的接口,倘若没
2023-06-17

python在线编程环境怎么搭建

要搭建Python在线编程环境,可以选择以下几种方法:1. 使用Jupyter Notebook:Jupyter Notebook是一个非常流行的Python在线编程环境,可以在浏览器中编写和运行Python代码。要搭建Jupyter No
2023-09-20

怎么搭建Python环境

本篇文章为大家展示了怎么搭建Python环境,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 安装 Python1.1 Mac 系统Mac 系统默认是安装了 Python2.7 的。我们如何另外安装
2023-06-17

CentOS中怎么搭建Python开发环境

今天就跟大家聊聊有关CentOS中怎么搭建Python开发环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、Python升级查看Python版本python -V Python
2023-06-17

Cassandra多租户环境怎么搭建

要搭建Cassandra多租户环境,首先需要安装和配置Cassandra集群。然后,可以使用Cassandra的KeySpace来实现多租户的逻辑隔离。KeySpace是Cassandra中用来存储数据的逻辑容器,可以将不同租户的数据存储在
Cassandra多租户环境怎么搭建
2024-05-11

python自动化环境怎么搭建

要搭建Python自动化环境,可以按照以下步骤进行:安装Python:首先需要下载并安装Python解释器。可以从Python官方网站(https://www.python.org/downloads/)下载适合您系统的Python安装程序
2023-10-22

Linux中怎么搭建Python2.7环境

这篇“Linux中怎么搭建Python2.7环境”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux中怎么搭建Pytho
2023-06-27

Centos7中怎么搭建k8s环境

Centos7中怎么搭建k8s环境,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 安装kubeadm、kubelet、kubectl由于官方k8s源在google,国内
2023-06-16

docker怎么搭建python开发环境

要搭建Python开发环境,可以使用Docker来进行部署。以下是一些步骤来设置Docker中的Python开发环境:1. 首先,安装Docker并确保它已成功安装在您的系统中。2. 创建一个Dockerfile,该文件用于定义构建镜像的配
2023-08-18

linux中怎么搭建java环境

在Linux中搭建Java环境可以通过以下步骤实现:下载Java JDK首先需要从Oracle官方网站上下载最新的Java JDK安装包,可以选择适合你系统的版本(32位或64位)。安装Java JDK下载完成后,使用以下命令解压安装包:t
linux中怎么搭建java环境
2024-03-04

ubuntu中lnmp环境怎么搭建

在Ubuntu系统中搭建LNMP环境(Linux + Nginx + MySQL + PHP)可以通过以下步骤实现:安装Nginx:在终端中执行以下命令安装Nginx:sudo apt updatesudo apt install n
ubuntu中lnmp环境怎么搭建
2024-03-06

hbuilder中怎么搭建php环境

在HBuilder中搭建PHP环境并不是直接支持的功能,因为HBuilder主要是用于前端开发的工具。不过你可以通过安装相关的插件或者使用第三方工具来搭建PHP环境。一种方法是安装PHP插件,例如PHP Development Tools
hbuilder中怎么搭建php环境
2024-03-06

centos中怎么搭建php环境

要在CentOS上搭建PHP环境,您可以按照以下步骤进行操作:更新系统:sudo yum update安装Apache服务器:sudo yum install httpd启动Apache服务并设置开机自启:sudo systemctl
2023-10-27

怎么搭建Maven环境

这篇文章给大家分享的是有关怎么搭建Maven环境的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装前先配置好电脑的相关环境变量。一、配置maven的环境下载地址:http://maven.apache.org/d
2023-05-30

怎么搭建mongodb环境

要搭建MongoDB环境,您可以按照以下步骤进行操作:1. 下载MongoDB:访问MongoDB官方网站(https://www.mongodb.com/),进入下载页面,选择适合您操作系统的版本,并下载安装包。2. 安装MongoDB:
2023-09-06

Node.js环境怎么搭建

本篇内容介绍了“Node.js环境怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装 Node.js 环境Node.js 是运行在服
2022-12-03

怎么搭建Python+Selenuim自动化环境

这篇文章主要介绍“怎么搭建Python+Selenuim自动化环境”,在日常操作中,相信很多人在怎么搭建Python+Selenuim自动化环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建Pytho
2023-06-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录