'Multi-threading and events exercise in Python

"Write a program using two threads such that one writes even numbers in increasing order and the other odd numbers in incresing order with respect to a certain threashold." For instance, given 10 I would like to have as output

T1-0
T2-1
T1-2
T2-3
...
T1-8
T2-9

I think an event object should be used in order to alternate between the print of a thread with the other, but I do not know how to implement it in order to make it work, since I think I have not fully grasped the tools to work with threads, yet. I leave here my faulty code for the task

import threading

e = threading.Event()


def even(n):
    if e.isSet() == False:
        for i in range(0,n,+2):
            e.set()
            print(i)
            e.clear()
            e.wait()
            
    
def odd(n):
    for i in range(1,n,+2):
        e.wait()
        print(i)
        e.set()
    

t1 = threading.Thread(target = odd, args=(10,))

t2 = threading.Thread(target = even, args=(10,))

t1.start()
t2.start()
t1.join()
t2.join()


Solution 1:[1]

import threading
import time

def thread_function(name,max,y):        
    print(name,y)
    time.sleep(0.1)
    for i in range(int(max/2)):
       time.sleep(0.3)
       y= y + 2
       print(name,y)



n = input("Input an integer \n")
n = int(n)
p=0

# Create thread 
mt1 = threading.Thread(target=thread_function, args=("T-Even",n,p))
mt2 = threading.Thread(target=thread_function, args=("T-Odd",n,p+1))
# Start thread
mt1.start()
time.sleep(0.1)
mt2.start()

mt1.join()

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mario