Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 对于python,如何在两个完全独立的python解释器之间传递锁?_Python 3.x_Locking_Ipc_Shared Memory - Fatal编程技术网

Python 3.x 对于python,如何在两个完全独立的python解释器之间传递锁?

Python 3.x 对于python,如何在两个完全独立的python解释器之间传递锁?,python-3.x,locking,ipc,shared-memory,Python 3.x,Locking,Ipc,Shared Memory,编辑:太多的信息分散了人们的注意力,所以我几乎删除了所有内容。这是在windows、使用mmap和msvcrt的python 3.6上实现的 一个python应用程序中的代码: fd = os.open(r'C:\somefile', os.O_CREAT | os.O_RDWR) mm_file = mmap.mmap(fd, 4096, access=mmap.ACCESS_WRITE) msvcrt.locking(fd, msvcrt.LK_LOCK, 4096) 当第二个应用程序试图

编辑:太多的信息分散了人们的注意力,所以我几乎删除了所有内容。这是在windows、使用mmap和msvcrt的python 3.6上实现的

一个python应用程序中的代码:

fd = os.open(r'C:\somefile', os.O_CREAT | os.O_RDWR)
mm_file = mmap.mmap(fd, 4096, access=mmap.ACCESS_WRITE)
msvcrt.locking(fd, msvcrt.LK_LOCK, 4096)
当第二个应用程序试图打开C:\somefile进行读/写时,可能会收到某种错误消息,因为它被锁定,所以无法访问它


实际发生的情况:第二个应用程序访问它没有问题。

进程间通信:-读取锁,使用命名管道或套接字进行通信。顺便说一句。要求图书馆是一项艰巨的任务。如果你的问题很快被否决和/或结案,可能是社区在暗示你有点离题:)-快乐编码。确保搜索进程间通信或命名管道,这样就有一些很好的例子了-不确定其中一个是否适合您的特定锁定需要。难道您不应该分配两倍的内存量,其中一半只由一个程序写入,另一半只读取而从不写入吗?是否有一个进程启动其他的?您可以将python的
多处理
mmap
一起使用,一面用于命令和同步,另一面用于快速访问共享内存。@PatrickArtner我已经阅读了该文档。这给出了锁的一个很好的概述,但回到我的问题,如何在两个完全不同的python解释器之间传递锁?如果我想要套接字通信中涉及的延迟,我会使用共享内存上的套接字,管道是一个解决方案,只要它们与共享内存一样快,并且可以在windows上工作。