2011-07-22 9 views
1

質問を壊していない。なぜ私のDALは、独自のスレッド上でオフに実行されていませんか?Pythonのスレッドがparrentスレッドから


私はこのプログラムを手に入れました。単純なファイルマネージャのバックエンドを実装しました。これは、スレッドを使った私の最初の経験からは遠いですが、何らかの理由で私はこの問題を解決できません。私はここに私のDALをインスタンス化:

def reactor(self): 
     while not self.kill: 
      ##check for new entries: 
      for i in self.ins: 
       self.save(i) 

      ##wait a minute before checking again. 
      time.sleep(60) 

ない複雑:

self.DAL = DAL(path) 
    ##prepare the reactor 
    self.DALrec = threading.Thread(target=self.DAL.reactor,name='DALReactor') 
    self.DALrec.run() 

反応器は、その中にこれを持っています。私はDALをインスタンス化します.DALはヒットして、スレッドをインスタンス化します。しかし、何らかの理由で、私はこれから本当にバザールの動きを得ています。 'run'を呼び出すのではなく、メインスレッドが自分のビジネスにスレッドを残している間、メインスレッドからself.DAL.reactor()を呼び出すかのように 'run'を処理しています。私のデバッガ(このプログラムの私の以前のバージョンで働いていたwinpdb)では、新しいスレッドが作成されているのを見ているは​​ずですが、スレッドは1つしか残っていません。

誰もが、私は一つだけ、ここのスレッドの代わりに、2を持っている理由の任意のアイデアがありますか?ありがとう。

答えて

4

あなたは別のスレッドでrun方法を実行するために、開始呼び出す必要があります。それ以外の場合はrunが呼び出されます。

投稿者docs: スレッドオブジェクトが作成されたら、スレッドのstart()メソッドを呼び出すことによってそのアクティビティを開始する必要があります。これにより、別のコントロールのスレッドでrun()メソッドが呼び出されます。

+0

oh blast。私は思い出せない。早くそれを試してみましょう。それをした – Narcolapser

+0

。ありがとう。 – Narcolapser

+0

うれしい私は助けることができます:) – MByD

関連する問題