"""
    多线程
    如果你想同时请求发送多个请求,获取多个交易所的ticker数据如何处理?

"""
from threading import Thread, Lock
# import threading

# def print_hello(a, b, c):
#     print(a)
#     print(b)
#     print(c)
#
# t1 = Thread(target=print_hello, args=(1, 2, 3))  # kwargs={"a": 1,  "c": 3, "b": 2}
# t1.start()



# demo1
# import threading, time
# def run(num):
#     print("子线程%s开始..."%(threading.current_thread().name))
#     time.sleep(2)
#     print(num)
#     time.sleep(2)
#     # current_thread  返回一个当前线程的实例
#     print("子线程%s结束..."%(threading.current_thread().name))
# if __name__ == '__main__':
#     print("主线程%s启动..."%(threading.current_thread().name))
#     # 创建子线程
#     t = threading.Thread(target=run,args =(1,))
#     t.start()
#     t.join()
#
#     print("主线程%s结束..."%(threading.current_thread().name))


#多线程共享资源
# import threading
# from threading import Lock
# lock = Lock() # threading.Lock()
# num = 0
#
# def run(n):
#     global num
#     for i in range(1000000):
#         # print(n)
#         # num += n
#         # num -= n
#         # with open("file"):
#         #     pass
#
#         with lock:
#             num += n
#             num -= n
##锁的机制就类似于把这里的门关起来,自己运行完毕后再让下一个进来运行
#         # lock.acquire()
#         # num = num - n
#         # num = num + n
#         # lock.release()
#
#
# if __name__ == '__main__':
#
#     t1 = threading.Thread(target=run,args=(6,))
#     t2 = threading.Thread(target=run,args=(9,))
#     t3 = threading.Thread(target=run,args=(5,))
#     t3.start()
#     t1.start()
#     t2.start()
#     t1.join()
#     t2.join()
#     t3.join()
#     print("num = %s"%(num))
#
#
#
import time

class MyThread(Thread):
    def __init__(self, exchange):
        # super(MyThread, self).__init__()
        super(MyThread, self).__init__() #super() 函数是用于调用父类(超类)的一个方法。
        self.name = "hello world"
        self.exchange = exchange

    def run(self):
        while True:
            print(f"request {self.exchange} BTCUSDT.....")
            time.sleep(2)

if __name__ == '__main__':
    thread = MyThread("Huobi")
    thread.start()

    thread_binance = MyThread("币安")
    thread_binance.start()