# Python program to illustrate the concept
# of threading
import threading
import os
def task1():
print("Task 1 assigned to thread: {}".format(threading.current_thread().name))
print("ID of process running task 1: {}".format(os.getpid()))
def task2():
print("Task 2 assigned to thread: {}".format(threading.current_thread().name))
print("ID of process running task 2: {}".format(os.getpid()))
if __name__ == "__main__":
# print ID of current process
print("ID of process running main program: {}".format(os.getpid()))
# print name of main thread
print("Main thread name: {}".format(threading.current_thread().name))
# creating threads
t1 = threading.Thread(target=task1, name='t1')
t2 = threading.Thread(target=task2, name='t2')
# starting threads
t1.start()
t2.start()
# wait until all threads finish
t1.join()
t2.join()
import threading
def print_hello_three_times():
for i in range(3):
print("Hello")
def print_hi_three_times():
for i in range(3):
print("Hi")
t1 = threading.Thread(target=print_hello_three_times)
t2 = threading.Thread(target=print_hi_three_times)
t1.start()
t2.start()
from multiprocessing.pool import ThreadPool as Pool
pool_size = 10
pool = Pool(pool_size)
results = []
for region, directory_ids in direct_dict.iteritems():
for dir in directory_ids:
result = pool.apply_async(describe_with_directory_workspaces,
(region, dir, username))
results.append(result)
for result in results:
code, content = result.get()
if code == 0:
# ...
import threading
import time
def useless_function(seconds):
print(f'Waiting for {seconds} second(s)', end = "
")
time.sleep(seconds)
print(f'Done Waiting {seconds} second(s)')
start = time.perf_counter()
t = threading.Thread(target=useless_function, args=[1])
t.start()
print(f'Active Threads: {threading.active_count()}')
t.join()
end = time.perf_counter()
print(f'Finished in {round(end-start, 2)} second(s)')