On Oct 13, 10:35 pm, "Martin P. Hellwig" <[email protected]>
wrote:
> def do_something():
> a = 4
> b = 2
> c = 1
> ooo:
> a += 1
> b += 2
> c += 3
> print(a, b, c)
>
> What I would expect to happen that all statements within the ooo block
> may be executed out
> of order. The block itself waits till all statements are returned before
> continuing.
>
> What do you think?
You can do this right now with Python 3.2+ and concurrent.futures:
from concurrent.futures import ThreadPoolExecutor
from functools import partial
import time
class DoSomething:
a = 4
b = 2
c = 1
def add(self, prop, val):
cur = getattr(self, prop)
time.sleep(cur)
print('Adding %d to %s' % (val, prop))
setattr(self, prop, cur + val)
def __init__(self):
with ThreadPoolExecutor(max_workers=3) as pool:
pool.submit(self.add, 'a', 1)
pool.submit(self.add, 'b', 2)
pool.submit(self.add, 'c', 3)
print(self.a, self.b, self.c)
DoSomething()
Here we call 'ooo' the ThreadPoolExecutor context manager :)
--
http://mail.python.org/mailman/listinfo/python-list