Python 3.x 对于python,如何在两个完全独立的python解释器之间传递锁?
编辑:太多的信息分散了人们的注意力,所以我几乎删除了所有内容。这是在windows、使用mmap和msvcrt的python 3.6上实现的 一个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) 当第二个应用程序试图
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上工作。