- 1 year ago
Python pool not working in windows but works in linux
Comment
1 / 1
If the multiprocessing.Pool
is not working in Windows but works in Linux, it could be due to the way Windows handles process forking compared to Linux. Windows does not support the fork()
system call, which is used by multiprocessing
module in Python for creating child processes.
To work around this issue, you can try using the spawn
or forkserver
start method when creating the multiprocessing.Pool
object. Here's an example:
pythonimport multiprocessing
def worker(x):
return x*x
if __name__ == '__main__':
# Use 'spawn' or 'forkserver' start method
multiprocessing.set_start_method('spawn')
with multiprocessing.Pool() as pool:
results = pool.map(worker, range(10))
print(results)
By setting the start method to 'spawn'
or 'forkserver'
, the multiprocessing
module will create new Python interpreter processes using the subprocess
module, which works in both Windows and Linux environments.
Try running your code with this modification and see if it resolves the issue on Windows.