import multiprocessing as mp
import sys
import time
num = mp.Value('d', 0.0, lock = True)
def func1():
global num
print ('start func1')
#While num.value < 100000:
for x in range(1000):
num.value += 1
#print(num.value)
print ('end func1')
def func2():
global num
print ('start func2')
#while num.value > -10000:
for x in range(1000):
num.value -= 1
#print(num.value)
print ('end func2')
if __name__=='__main__':
ctx = mp.get_context('fork')
p1 = ctx.Process(target=func1)
p1.start()
p2 = ctx.Process(target=func2)
p2.start()
p1.join()
p2.join()
sys.stdout.flush()
print(num.value)
aW1wb3J0IG11bHRpcHJvY2Vzc2luZyBhcyBtcAppbXBvcnQgc3lzCmltcG9ydCB0aW1lCgpudW0gPSBtcC5WYWx1ZSgnZCcsIDAuMCwgbG9jayA9IFRydWUpCgoKZGVmIGZ1bmMxKCk6CiAgICBnbG9iYWwgbnVtCiAgICBwcmludCAoJ3N0YXJ0IGZ1bmMxJykKICAgICNXaGlsZSBudW0udmFsdWUgPCAxMDAwMDA6CiAgICBmb3IgeCBpbiByYW5nZSgxMDAwKToKICAgICAgICBudW0udmFsdWUgKz0gMQogICAgICAgICNwcmludChudW0udmFsdWUpCiAgICBwcmludCAoJ2VuZCBmdW5jMScpCgpkZWYgZnVuYzIoKToKICAgIGdsb2JhbCBudW0KICAgIHByaW50ICgnc3RhcnQgZnVuYzInKQogICAgI3doaWxlIG51bS52YWx1ZSA+IC0xMDAwMDoKICAgIGZvciB4IGluIHJhbmdlKDEwMDApOgogICAgICAgIG51bS52YWx1ZSAtPSAxCiAgICAgICAgI3ByaW50KG51bS52YWx1ZSkKICAgIHByaW50ICgnZW5kIGZ1bmMyJykKCmlmIF9fbmFtZV9fPT0nX19tYWluX18nOgogICAgY3R4ID0gbXAuZ2V0X2NvbnRleHQoJ2ZvcmsnKQogICAgcDEgPSAgY3R4LlByb2Nlc3ModGFyZ2V0PWZ1bmMxKQogICAgcDEuc3RhcnQoKQogICAgcDIgPSBjdHguUHJvY2Vzcyh0YXJnZXQ9ZnVuYzIpCiAgICBwMi5zdGFydCgpCiAgICBwMS5qb2luKCkKICAgIHAyLmpvaW4oKQogICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAgICBwcmludChudW0udmFsdWUp