擅长:python、mysql、java
<blockquote>
<p>in this I don't understand why workQueue is passed as parameter to the self method in class
myThread we could have directly used workQueue instead of using self.q</p>
</blockquote>
<p>在这个特定的例子中,您可以只引用全局<code>workQueue</code>变量。
但这并不是一个非常普遍的方法,全球变量往往会造成混乱。如果希望对象能够为不同的目的使用多个不同的工作队列,该怎么办?最好只传递希望对象使用的队列,而不是让对象引用全局变量。在</p>
<blockquote>
<p>.I opened a common DB connection and allowed every thread to use it.</p>
</blockquote>
<p>数据库连接不是线程安全的,所以当您这样做时,可能会发生随机事件。
如文件所述:</p>
<blockquote>
<p>The MySQL protocol can not handle multiple threads using the same
connection at once. ... The general upshot of this is: Don't share
connections between threads.</p>
</blockquote>
<p>因此,您应该做的是,每个线程使用一个连接,正如您所发现的那样,它工作得很好。这与使用<code>Queue</code>的方式不同,在示例代码中,当您访问它时,它是正确锁定的。在</p>