fork(2) download
  1. from concurrent.futures import ThreadPoolExecutor
  2.  
  3. def fibonacci(n):
  4. if n < 2:
  5. return n
  6. a = pool.submit(fibonacci, n - 1)
  7. b = pool.submit(fibonacci, n - 2)
  8. return a.result() + b.result()
  9.  
  10. def main():
  11. global pool
  12.  
  13. N = int(input())
  14. with ThreadPoolExecutor(2**N) as pool:
  15. print(fibonacci(N))
  16.  
  17. main()
Runtime error #stdin #stdout #stderr 0.15s 44528KB
stdin
14
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "prog.py", line 18, in <module>
    main()
  File "prog.py", line 16, in main
    print(f.result())
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 400, in result
    return self.__get_result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 352, in __get_result
    raise self._exception
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "prog.py", line 8, in fibonacci
    return a.result() + b.result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 400, in result
    return self.__get_result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 352, in __get_result
    raise self._exception
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "prog.py", line 8, in fibonacci
    return a.result() + b.result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 400, in result
    return self.__get_result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 352, in __get_result
    raise self._exception
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "prog.py", line 8, in fibonacci
    return a.result() + b.result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 400, in result
    return self.__get_result()
  File "/usr/lib/python3.2/concurrent/futures/_base.py", line 352, in __get_result
    raise self._exception
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "prog.py", line 6, in fibonacci
    a = pool.submit(fibonacci, n - 1)
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 103, in submit
    self._adjust_thread_count()
  File "/usr/lib/python3.2/concurrent/futures/thread.py", line 119, in _adjust_thread_count
    t.start()
  File "/usr/lib/python3.2/threading.py", line 683, in start
    _start_new_thread(self._bootstrap, ())
_thread.error: can't start new thread