Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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
什么';Windows上的os.fork()与Python的等价性是什么?_Python_Fork - Fatal编程技术网

什么';Windows上的os.fork()与Python的等价性是什么?

什么';Windows上的os.fork()与Python的等价性是什么?,python,fork,Python,Fork,这段代码在Mac/Linux中运行良好,但在Windows中不起作用 import mmap import os map = mmap.mmap(-1, 13) map.write("Hello world!") pid = os.fork() if pid == 0: # In a child process print 'child' map.seek(0) print map.readline() map.close() else: prin

这段代码在Mac/Linux中运行良好,但在Windows中不起作用

import mmap import os map = mmap.mmap(-1, 13) map.write("Hello world!") pid = os.fork() if pid == 0: # In a child process print 'child' map.seek(0) print map.readline() map.close() else: print 'parent' 导入mmap 导入操作系统 map=mmap.mmap(-1,13) 地图。写下(“你好,世界!”) pid=os.fork() 如果pid==0:#在子进程中 打印“儿童” 地图搜索(0) 打印map.readline() map.close() 其他: 打印“家长”
  • Windows上os.fork()的等效函数是什么

根据您的用例以及是否可以使用python 2.6,您可能可以使用该模块。

此处的答案可能无法回答问题。问题是由于
fork()
引起的。从这个示例中,您似乎希望在两个Python脚本之间共享数据。让我解释一下我的观点

从Python3.8开始,Windows平台中没有真正的Unix的
fork()
实现。为了使上面的示例起作用,子进程必须继承所有环境和打开的文件描述符

我知道Windows现在支持Windows Linux子系统,但上次检查时它仍然没有完全实现fork。Cygwin确实是这样,但速度有点慢

直到现在,我还不知道如何在Windows平台上使用mmap在两个Python脚本之间传递信息。使用

  • 多处理队列
  • 多处理管道
  • 多处理.Manager
  • 多处理
    的共享内存(
    数组
  • 我相信您可以让每个Python脚本读入要映射文件的内容,并将其映射到字符的
    数组中。然后使用您自己的结构将共享内存映射到结构化数据中,就像您对要映射的文件所做的那样