Can thread start other threads?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • John Henry

    #1

    Can thread start other threads?

    Can Python thread start threads? It appears not. When I do that, the
    sub-threads gets to certain point and just sit there. If I run the
    code serially and not run the sub-thread code as threads, everything is
    fine.

    I throught the problem is when you run multiple processes of Pythons...

  • Diez B. Roggisch

    #2
    Re: Can thread start other threads?

    John Henry schrieb:
    Can Python thread start threads? It appears not. When I do that, the
    sub-threads gets to certain point and just sit there. If I run the
    code serially and not run the sub-thread code as threads, everything is
    fine.
    It can.

    import threading, time


    class Test(threading. Thread):
    def __init__(self, num):
    threading.Threa d.__init__(self )
    self._num = num
    self.setDaemon( True)
    self.start()

    def run(self):
    if self._num 0:
    t = Test(self._num - 1)
    while True:
    time.sleep(.2)
    print "T_%i" % self._num


    t = Test(4)

    while True:
    time.sleep(2.0)

    I throught the problem is when you run multiple processes of Pythons...

    No.

    Whatever you do, it must be the cause. Without code - nobody can tell
    you why.

    Diez

    Comment

    • John Henry

      #3
      Re: Can thread start other threads?

      Thanks for the confirmation.

      I will see if I can reduce the code down to something managable and
      post the failing code.



      Diez B. Roggisch wrote:
      John Henry schrieb:
      Can Python thread start threads? It appears not. When I do that, the
      sub-threads gets to certain point and just sit there. If I run the
      code serially and not run the sub-thread code as threads, everything is
      fine.
      >
      It can.
      >
      import threading, time
      >
      >
      class Test(threading. Thread):
      def __init__(self, num):
      threading.Threa d.__init__(self )
      self._num = num
      self.setDaemon( True)
      self.start()
      >
      def run(self):
      if self._num 0:
      t = Test(self._num - 1)
      while True:
      time.sleep(.2)
      print "T_%i" % self._num
      >
      >
      t = Test(4)
      >
      while True:
      time.sleep(2.0)
      >
      >
      I throught the problem is when you run multiple processes of Pythons...
      >
      >
      No.
      >
      Whatever you do, it must be the cause. Without code - nobody can tell
      you why.
      >
      Diez

      Comment

      Working...