Python 无限循环:尝试使用线程同时买卖股票

Python 无限循环:尝试使用线程同时买卖股票,python,multithreading,Python,Multithreading,我正在尝试同时买卖。然而,我遇到了一个问题,尽管它不是每次都发生,这很奇怪。我的代码如下: def post_make_order(...): # get spot price etc etc i=0 time.sleep(1) while i < 1: get order status. if open etc: do somethings with nested if-else el

我正在尝试同时买卖。然而,我遇到了一个问题,尽管它不是每次都发生,这很奇怪。我的代码如下:

def post_make_order(...):
    # get spot price etc etc
    i=0
    time.sleep(1)
    while i < 1:
        get order status.
        if open etc:
            do somethings with nested if-else
        elif closed:
            print(order completed etc)

def futures_spread(
    self, buy_market, sell_market, total_size: float, clip_size: float
):
    number_of_loops = int(total_size / clip_size)


    i = 0
    while i < int(number_of_loops):
        _BUY = (buy_market, "buy", clip_size)
        _SELL = (sell_market, "sell", clip_size)
        t1 = threading.Thread(
            target=self.post_maker_order, args=[buy_market, "buy", clip_size]
        )
        t2 = threading.Thread(
            target=self.post_maker_order, args=[sell_market, "sell", clip_size]
        )
        t1.start()
        t2.start()
        t1.join()
        t2.join()
        time.sleep(1)   
def post\u make\u order(…):
#获得现货价格等
i=0
时间。睡眠(1)
而i<1:
获取订单状态。
如果打开等:
用嵌套的if-else做一些事情
elif关闭:
打印(已完成订单等)
期货价差(
self,购买市场,出售市场,总尺寸:浮动,剪辑尺寸:浮动
):
循环数=整数(总大小/剪辑大小)
i=0
而i

但是,有时订单已完成,但代码不会停止运行。我是在用线程做些什么吗?

如果真的是“有时”,你可能会遇到竞争情况,你需要使用锁。我也在网上读到过这方面的内容,但我有点不确定在哪里应用锁。。。