diff --git a/Concurrence_examples/multiprocessing_example.py b/Concurrence_examples/multiprocessing_example.py new file mode 100644 index 0000000..282f184 --- /dev/null +++ b/Concurrence_examples/multiprocessing_example.py @@ -0,0 +1,14 @@ +import multiprocessing +import time +import random + + +def worker(n): + sleep = random.randrange(1, 10) + time.sleep(sleep) + print("Worker {}: sleeping for {} seconds.".format(n, sleep)) + + +for i in range(5): + t = multiprocessing.Process(target=worker, args=(i,)) + t.start() diff --git a/Concurrence_examples/race_coditions.py b/Concurrence_examples/race_coditions.py new file mode 100644 index 0000000..e50e360 --- /dev/null +++ b/Concurrence_examples/race_coditions.py @@ -0,0 +1,26 @@ +import threading + +x = 0 + +COUNT = 10000000 + +def foo(): + global x + for i in xrange(COUNT): + x += 1 + +def bar(): + global x + for i in xrange(COUNT): + x -= 1 + +t1 = threading.Thread(target=foo) +t2 = threading.Thread(target=bar) + +t1.start() +t2.start() + +t1.join() +t2.join() + +print(x) diff --git a/Concurrence_examples/thread_example.py b/Concurrence_examples/thread_example.py new file mode 100644 index 0000000..572c550 --- /dev/null +++ b/Concurrence_examples/thread_example.py @@ -0,0 +1,14 @@ +import time +import random +import threading + + +def worker(n): + sleep = random.randrange(1, 10) + time.sleep(sleep) + print("Worker {}: sleeping for {} seconds.".format(n, sleep)) + + +for i in range(5): + t = threading.Thread(target=worker, args=(i,)) + t.start()