当前位置:首页 » 编程语言 » python取进程pid

python取进程pid

发布时间: 2025-03-24 13:09:36

‘壹’ python中的os.getpid是什么,pid有什么用

getpid是获得当前进程的进程号。系统每开辟一个新进程就会为他分配一个进程号。在多进程的时候会用到吧好像。

‘贰’ python 获取指定进程pid,怎么总是错

简答:
通过知道对应的进程名,可以获得进程,然后进一步获取进程信息。

详解,自己去看吧:
【记录】折腾Python中的psutil:一个用于获得处理器和系统相关信息的模块
(此处不能贴地址,请自己用google搜标题,即可找到帖子地址)

‘叁’ Python 爬虫进阶篇——diskcahce缓存(二)

上一篇文章为大家介绍了diskcache的基础用法,本文将继续深入探讨diskcache的更多高级功能。

关于diskcache,它是一种基于SQLite数据库的缓存对象管理方式。SQLite是一个轻量级的基于磁盘的数据库,它不需要单独的服务器进程,并支持SQL查询。在上篇文章的源码截图上,你可以看到一些SQL语句的使用。

diskcache支持使用diskcache.FanoutCache自动分片基础数据库。分片是对数据进行水平分区,可以减少写入时的阻塞。尽管读和写不会互相阻碍,但写入会阻碍其他写入。分片的默认值为8。

以下是一个示例代码:

# 示例代码

在示例中,我们在diskcache_2文件夹中创建了一个具有四个分片和一秒超时的缓存。如果操作耗时超过一秒,它们将尝试中止操作。

那么每一个分片的大小是多少呢?分片的大小都是平均分配的,占总空间的四分之一。diskcache的默认大小为1GB。

diskcache提供了一个collections.deque兼容的双端队列diskcache.Deque。双端队列是堆栈和队列的一般化,可以在前后都可以进行快速访问和编辑,且可持久化,操作比较便捷。

以下是一个示例代码:

# 示例代码

运行结果如下:

Popleft 获取队列最前面的一个元素,pop获取末尾的一个元素;

Appendleft 在队列最开始添加一个元素,append 在末尾添加一个元素;

Extendleft 在队列最开始添加一个数组,extend在末尾添加一个数组;

那么deque的存储位置在哪里?可以使用以下命令查看队列的存储位置:

包括cache也是一个可以使用directory属性查看默认存储的位置;

那么如何指定directory呢?Deque的第二个参数指定存储位置,第一个参数为队列的初始值。或者可以直接指定参数名称,如下:

Index 类似于dict(字典),可持久化,使用也比较便捷。以下是一个示例:

# 示例代码

popitem表示获取最后一个键对值,并且删除,结果如下:

peekitem() 可传递last 参数是否获取最后一个,不会删除原始值;

setdefault(key,default) 可以给指定的key值设置默认值,在查找时可以预先设置一个默认值,防止key值不存在而抛出异常。

keys()与values()可以查找所有Index中的key值与value值,然而没有提供判断key值是否存在的方法,但是可以使用setdefault的方法自行封装。

Lock还记得上篇文章中提到的Lock锁吗?先看一下源码:

可以看到这里的锁用的就是cache的add方法的特性,源码中也给出了使用的方式:

从源码上看有一个while 死循环,直到add成功时才会被释放,这里处理的方式不是很好,可能会造成死锁,所以一般情况下,都会添加一个过期的时间,如下:

RLock还有一种RLock锁,与Lock锁的区别是RLock允许在同一线程中被多次acquire。而Lock却不允许这种情况。以下是一个示例:

结果是执行成功。

看一下源码:

从源码中可以看出,判断锁的条件是os.getpid()(进程pid)与threading.get_ident()(线程标识符),如果每次acquire时的pid与ident都相同的时,即可成功。那么就可以在相同的进程中无限次数的acquire,但是多少次acquire就得多少次的release,防止死锁。

那么是使用Lock还是RLock呢?这个要具体的看实际情况,并不是谁就一定好。

总结本次推文中介绍了diskcache中FanoutCache缓存分片、双端队列deque、Index、Lock以及RLock。

大家可以在实际中灵活运用,diskcache缓存的优势还是很大的,无需安装其他的模块,并且在文件管理器中能直接查看,还可以利用缓存的一些特性使用多线程的去实现业务等。

但是也是有缺点的,即受制于本地文件系统的限制。每个磁盘每个目录下的文件数量是有限制的,所以需要结合实际情况使用。

热点内容
iterm怎么连接服务器 发布:2025-03-26 08:28:45 浏览:255
存储文件目录 发布:2025-03-26 08:27:42 浏览:342
神话2脚本 发布:2025-03-26 08:18:11 浏览:802
nginx代理不缓存 发布:2025-03-26 08:10:31 浏览:262
手动舒适型新奥拓配置有哪些 发布:2025-03-26 08:09:58 浏览:864
永恒之塔怀旧服服务器地址 发布:2025-03-26 07:51:59 浏览:610
xp安卓版什么意思 发布:2025-03-26 07:26:54 浏览:19
安卓怎么连接扫码上游戏 发布:2025-03-26 07:19:02 浏览:306
烟草证帐号密码没下来到哪里咨询 发布:2025-03-26 07:16:07 浏览:625
vm共享文件夹找不到 发布:2025-03-26 07:15:25 浏览:424