只有一个线程正在启​​动python

时间:2016-06-15 20:10:52

标签: python multithreading python-3.x

decimal maxPrice = 0;
for (int i = 0; i < products.Count; i++)
{
    Product product = products[i];

    if (product.Price > maxPrice)
    {
        maxPrice = product.Price;
        product.Enabled = true;

        // Set all others to Disabled
        foreach (Product other in products.Where(p => p.Id != product.Id))
        {
            other.Enabled = false;
        }
    }
}

由于某种原因,threadTwo永远不会启动,输出总是threadOne但是当我通过threadOne切换threadTwo的定位时,threadOne不会运行。我想这是他们进入队列的方式,但我不知道如何修复它。

1 个答案:

答案 0 :(得分:3)

问题是如何将函数传递给线程。你调用它们而不是传递callable。您可以通过删除括号()

来解决此问题
print("thread two")
threadTwo = Thread(target=mainLoop)
print("thread one")
threadOne = Thread(target=pingGetterLoop)

由于两个函数都包含无限循环,因此您永远不会过去调用第一个函数,然后永远循环。