Threading problem

Laura Creighton lac at strakt.com
Wed Apr 3 12:18:15 EST 2002


> I have a PC with two processors at work and have decided to try to use
> threading to run some long running console applications.  My basic idea is
> to start two threads, one for each processor, and give them a list of things
> to do.  As each thread finishes it one job will go to the list and pick off
> the next thing to do.  When the list is empty, both threads are done.
> 
> Here's a snippet of the code that inherits from threading.Thread:
> 
> class MyThread(threading.Thread):
>     def __init__(self, thName, jobList, jobLock):
>         threading.Thread().__init__(self, name=thName)
>         self.jobList = jobList
>         self.jobLock = jobLock
> 
> 
> My code is failing in first statement of the constructor, you can see the
> error below.
> 
> 
> X:\Projects\Pecos\ttc6\thsp>run.py
> Traceback (most recent call last):
>   File "X:\Projects\Pecos\ttc6\thsp\run.py", line 59,
>     main()
>   File "X:\Projects\Pecos\ttc6\thsp\run.py", line 46,
>     th1 = MyThread( "Thread1", jobList, jobLock )
>   File "X:\Projects\Pecos\ttc6\thsp\run.py", line 9, i
>     threading.Thread().__init__(self, name=thName)
>   File "C:\Python22\lib\threading.py", line 355, in __
>     assert group is None, "group argument must be None
> AssertionError: group argument must be None for now
> 
> The thing that puzzles me is that threading.Thread() is insisting that
> group=None.  That's ok with me, and I haven't changed it, yet it's
> complaining as if I did.
> 
> What am I doing wrong?
> 
> Larry
> Running Python 2.2

Take out the self in threading.Thread().__init__(self, name=thName)

Queue.Queue() was designed for exactly what you want to do.  Its dead
easy to use, as opposed to managind your own List and locks.
See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/82965
for an example of how to use it.  Or go read Aahz's tutorial.

Laura Creighton





More information about the Python-list mailing list