誰かが私のコードが "hello"を印刷していない理由を指摘してください。スレッド2 - t2が起動していないと感じます。これはちょうどコードスニペットです、私は私のメインプログラムで実装するために取り組んでいます。基本的に、私の考えは以下の通りです:Pythonスレッディング - シンプルでトリッキーな
- 単機能持っている - 「whileループ」
- スレッド1でのコードの2つの設定----「IF条件ステートメント」内の1つのコードや他のを持っています - 関数1を使用しています - "While loop"を続けています - 私がプログラムを突然止めるまで
- スレッド2やスレッド3、スレッド4などは同じ関数を使いたいですが "if条件文"のコードは
- 次のコードではスレッド1を継続的に実行し、thread2はthread1を中断することなくその作業を行います。
コード:
import threading
import Queue
def Continuous(stop_event, queue_read, queue_write,lock):
#lock.acquire()
try:
if stop_event == True:
print stop_event.is_set()
print "hello"
c = 7
d = 8
msg2 = (c+d)*2
queue_write.put(msg2)
while not stop_event.wait(1):
print "hello2"
#print ("working on %s" % arg)
a = 3;
b = 4
msg1 = a*b
queue_read.put(msg1)
time.sleep(1)
finally:
print "Inside finally"
#lock.release()
print"Outside try and finally"
def main():
pill2kill = threading.Event()
lock = threading.Lock()
pill2kill.clear()
queue1 = Queue.Queue()
queue2 = Queue.Queue()
#self.queue2 = Queue.Queue()
t1 = threading.Thread(target = Continuous, args = (pill2kill,queue1,queue2,lock))
t1.deamon = True
t1.start()
print "asdfasfd"
time.sleep(2)
pill2kill_1 = threading.Event()
pill2kill_1.set()
print "hjgkhj"
t2 = threading.Thread(target=Continuous, args=(pill2kill_1, queue1, queue2,lock))
t2.start()
t2.join()
pill2kill.clear()
print "End of program"
main()
PS:私はこのように私のコードを掲示するために、非常に残念です。 (OPによるその後のコメントは、彼らが期待していたものを、それが明確になるので、コメントから変換)問題がEvent
の誤用から来るに私は15分以上を試みたと私はそれが
あなたの質問は何ですか?またはエラー? – FamousJameous
奇妙なことに、私はそれを編集しようとしていて、フォーマットがうまくいきません。 – Jezor
@Jezorこれは、コードが間に他の通常の本文の要素を持たない箇条書きリストに続くためです。通常、空のHTMLコメント ''をこのような2つの要素の間に挿入すると、そのトリックが実行されます。 –