About socket threading
Steve Holden
steve at holdenweb.com
Tue Jan 17 08:01:09 EST 2006
Kr z wrote:
> Hi,
>
> Do anyone know the Python source codes on how the client can send/"pump"
> a lot of threads to the server class?
>
It isn't that difficult. Here's a basic threading framework that allows
you to vary the number of threads fairly easily. Then you just have to
make sure that each thread doesn't interfere with the others. Hope this
helps.
The run() method is the network client tasks you want to run.
I have used this scheme with a 200-SMTP-client setup and it worked very
well, with the worker threads communication back to the master thread
using Queue.Queue.
========
import time, threading, random
class MyThread(threading.Thread):
""" Each thread picks a 'random' integer between 0 and 19 and reports
in once per second for that many seconds.
"""
def run(self):
iterations = random.randint(0, 19)
print "Thread", self.getName(), "starting", iterations,
"iterations"
for i in range(iterations):
print " ", self.getName(), "is reporting "
time.sleep(1)
print self.getName(), "is DONE"
def test():
threadList = []
# Create 5 MyThread() threads
for i in range(5) :
thread = MyThread()
threadList.append(thread)
# Start all threads
for thread in threadList:
thread.start()
# As long as we have more than just the 'main' thread running,
print out
# a status message
while threading.activeCount() > 1 :
print str(threading.activeCount()), "threads running including
main"
time.sleep(1)
if __name__ == '__main__':
test()
========
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC www.holdenweb.com
PyCon TX 2006 www.python.org/pycon/
More information about the Python-list
mailing list