Threading


In [17]:
import threading
from multiprocessing.pool import ThreadPool
In [18]:
def load_data1(num):
    for i in range(0, num):
        print('First')
        
    return 1

def load_data2(num):
    for i in range(0, num):
        print('Second')
    
    return 2
    
def load_data3(num):
    for i in range(0, num):
        print('Third')

    return 3
In [27]:
pool = ThreadPool(processes = 3)

async_result_1 = pool.apply_async(load_data1, args=[5])
async_result_2 = pool.apply_async(load_data2, args=[5])
async_result_3 = pool.apply_async(load_data3, args=[5])

pool.close()
pool.join()

data1 = async_result_1.get()
data2 = async_result_2.get()
data3 = async_result_3.get()

print( data1, data2, data3 )
FirstSecond
First
FirstThird

Second
Second
Second
Second

Third
Third
Third
Third
First
First
1 2 3