首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 1章 处理错误和寻求帮助
1.1 如何理解Python错误信息
1.1.1 检查回溯信息
1.1.2 搜索错误信息
1.2 借助linter 避免错误
1.3 如何寻求编程帮助
1.3.1 预先提供信息以避免反复补充
1.3.2 以实际问题的形式陈述问题
1.3.3 在合适的网站上提出你的问题
1.3.4 在标题中概述你的问题
1.3.5 说明代码的预期目的
1.3.6 包含完整的错误信息
1.3.7 分享全部代码
1.3.8 通过适当的格式化增强代码可读性
1.3.9 告诉帮忙者已经尝试过的方法
1.3.10 描述你的设置信息
第 2章 环境设置和命令行
2.1 文件系统
2.1.1 Python中的路径
2.1.2 主目录
2.1.3 当前工作目录
2.1.4 绝对路径和相对路径
2.2 程序和进程
2.3 命令行
2.3.1 打开终端窗口
2.3.2 使用命令行运行程序
2.3.3 使用命令行参数
2.3.4 在命令行中使用-c 运行Python代码
2.3.5 从命令行运行Python 程序
2.3.6 运行py.exe 程序
2.3.7 在Python 程序中运行命令
2.3.8 使用Tab 补全命令减少输入量
2.3.9 查看历史命令
2.3.10 使用常用命令
2.4 环境变量和PATH
2.4.1 查看环境变量
2.4.2 使用PATH 环境变量
2.4.3 更改命令行的PATH 环境变量
2.4.4 在Windows 上将文件夹永久添加到PATH
2.4.5 在macOS 和Linux 上将文件夹永久添加到PATH
2.5 不借助命令行运行Python 程序
2.5.1 在Windows 上运行Python程序
2.5.2 在macOS 上运行Python 程序
2.5.3 在Ubuntu Linux 上运行Python程序
第3章 使用Black 进行代码格式化
3.1 让程序员招人烦的错误做法
3.2 风格指南和PEP 8
3.3 水平间距
3.3.1 使用空格进行缩进
3.3.2 行内间距
3.4 垂直间距
3.4.1 垂直间距示例
3.4.2 垂直间距的最佳实践
3.5 Black:毫不妥协的代码格式化工具
3.5.1 安装Black
3.5.2 在命令行中运行Black
3.5.3 对部分代码禁用Black
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(一)
小册名称:Python编程轻松进阶(一)
### 2.2 程序和进程 在深入探讨Python编程的进阶之路时,理解程序与进程的概念是基础且至关重要的一步。这两个概念虽然紧密相关,但在计算机科学的语境下,它们各自扮演着不同的角色。本节将详细阐述程序与进程的定义、区别、联系,以及它们在Python程序设计中的应用。 #### 2.2.1 程序的定义 **程序**(Program)是一系列按照特定顺序组织的计算机指令和数据的集合。这些指令和数据被设计为执行特定的任务或实现特定的功能。程序是静态的,它存储在硬盘或其他非易失性存储介质上,直到被加载到内存中并由CPU执行之前,它不会表现出任何活动。简单来说,程序是未执行的代码和数据的集合。 在Python中,一个`.py`文件就是一个程序文件的典型代表。它包含了用Python语法编写的代码,这些代码定义了程序的结构、逻辑和预期行为。当Python解释器执行这个`.py`文件时,文件中的代码被转换成机器语言(或中间表示形式),然后由计算机的CPU执行。 #### 2.2.2 进程的定义 **进程**(Process)是系统进行资源分配和调度的一个独立单元,是操作系统结构的基础。它包含了执行中的程序实例及其占用的资源(如CPU时间、内存空间、文件句柄等)。进程是动态的,它在程序被执行时创建,并在执行完成后销毁。每个进程都有自己独立的内存空间和系统资源集合,这使得进程间通信(IPC)成为必要的技术手段。 在操作系统层面,进程是资源分配的最小单位。例如,在Linux系统中,你可以通过`ps`命令查看当前运行的进程列表,每个进程都有唯一的进程ID(PID)。 #### 2.2.3 程序与进程的区别与联系 - **区别**: - **静态与动态**:程序是静态的,存储在存储介质上;进程是动态的,是程序执行时的实体。 - **存在形式**:程序以代码和数据的形式存在;进程是程序执行和数据处理的动态过程。 - **资源占用**:程序本身不占用系统资源;进程占用一定的CPU时间、内存空间等资源。 - **联系**: - **依赖关系**:进程是程序的一次执行实例,没有程序就没有进程。 - **目标一致**:程序设计的目的是为了完成任务或实现功能,进程的执行正是为了实现这些目的。 - **相互转化**:程序被加载到内存并由操作系统创建进程来执行;进程执行结束后,其占用的资源被释放,但程序本身仍然存在于存储介质上。 #### 2.2.4 Python中的进程管理 在Python中,管理进程主要依赖于标准库中的`multiprocessing`模块。这个模块提供了一个类似于`threading`模块的API,但用于创建进程而非线程。由于进程拥有独立的内存空间,它们之间不能直接共享数据,因此`multiprocessing`模块提供了多种进程间通信(IPC)机制,如管道(Pipe)、队列(Queue)、共享内存等。 ##### 2.2.4.1 创建进程 使用`multiprocessing.Process`类可以方便地创建进程。每个`Process`实例都代表一个即将运行的进程。通过调用其`start()`方法,可以在Python程序中启动一个新的进程。 ```python from multiprocessing import Process def worker(num): """线程执行的函数""" print(f'Worker: {num}') if __name__ == '__main__': jobs = [] for i in range(5): p = Process(target=worker, args=(i,)) jobs.append(p) p.start() for j in jobs: j.join() # 等待所有进程完成 ``` ##### 2.2.4.2 进程间通信 在Python中,进程间通信可以通过多种方式实现,如使用`Queue`模块中的队列、`Pipe`模块中的管道等。队列提供了一种线程或进程安全的先进先出(FIFO)的数据结构,非常适合用于进程间通信。 ```python from multiprocessing import Process, Queue def writer(queue): queue.put("Hello") def reader(queue): print(queue.get()) if __name__ == '__main__': q = Queue() pw = Process(target=writer, args=(q,)) pr = Process(target=reader, args=(q,)) pw.start() pr.start() pw.join() pr.join() ``` 在这个例子中,我们创建了一个队列`q`,并通过两个进程`pw`和`pr`来演示如何向队列中写入数据和从队列中读取数据。 #### 2.2.5 小结 理解程序与进程的区别与联系,对于深入学习Python编程以及系统级编程至关重要。在Python中,通过`multiprocessing`模块,我们可以方便地创建和管理进程,并利用其提供的IPC机制实现复杂的并发和并行计算任务。随着Python应用的不断深入和扩展,掌握进程管理技巧将成为提升程序性能、优化资源利用的重要手段。 通过上述内容的介绍,我们不仅加深了对程序与进程基本概念的理解,还学会了如何在Python中创建进程、管理进程以及实现进程间通信。这些知识和技能将为我们后续的Python编程进阶之路打下坚实的基础。
上一篇:
2.1.4 绝对路径和相对路径
下一篇:
2.3 命令行
该分类下的相关小册推荐:
Python3网络爬虫开发实战(上)
Python合辑12-面向对象
Python机器学习基础教程(下)
实战Python网络爬虫
Python高性能编程与实战
Python自动化办公实战
Python合辑5-格式化字符串
Python合辑9-判断和循环
Python爬虫入门与实战开发(下)
Python面试指南
Python机器学习实战
Python合辑3-字符串用法深度总结