Search This Blog

Monday, September 28, 2015

Threading and Queues

from scapy.all import *
import threading
import Queue
import time

class WorkerThread(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        print "In worker thread"
        while True:
            counter = self.queue.get()
            print "Ordered to sleep for %d seconds" %counter
            time.sleep(counter)
            print "Completed the job. Slept for %d seconds" %counter
            self.queue.task_done()

queue = Queue.Queue()

for i in range(10):
    print "creating worker thread %d" %i
    worker = WorkerThread(queue)
    worker.setDaemon(True)
    worker.start()
    print "Worker thread %d created" %i


for j in range(10):
    queue.put(j)

queue.join()

print "All Tasks Over!"


OUTPUT:
======
/usr/bin/python /home/dvaidyula/PycharmProjects/spse/scapy-2.3.1/tcp_connect_scan.py
WARNING: No route found for IPv6 destination :: (no default route?)
creating worker thread 0
In worker thread
Worker thread 0 created
creating worker thread 1
In worker threadWorker thread 1 created

 creating worker thread 2
In worker threadWorker thread 2 created
creating worker thread 3

In worker threadWorker thread 3 created

creating worker thread 4
In worker thread
 Worker thread 4 created
creating worker thread 5
In worker threadWorker thread 5 created
creating worker thread 6
Worker thread 6 created
creating worker thread 7
In worker thread

In worker thread
 Worker thread 7 created
creating worker thread 8
In worker threadWorker thread 8 created
creating worker thread 9

In worker threadWorker thread 9 created

Ordered to sleep for 0 seconds
 Ordered to sleep for 1 seconds
Ordered to sleep for 2 seconds
Completed the job. Slept for 0 seconds
Ordered to sleep for 3 seconds
Ordered to sleep for 4 seconds
Ordered to sleep for 5 seconds
 Ordered to sleep for 7 secondsOrdered to sleep for 6 seconds

Ordered to sleep for 8 seconds
Ordered to sleep for 9 seconds
Completed the job. Slept for 1 seconds
Completed the job. Slept for 2 seconds
Completed the job. Slept for 3 seconds
Completed the job. Slept for 4 seconds
Completed the job. Slept for 5 seconds
Completed the job. Slept for 6 seconds
Completed the job. Slept for 7 seconds
Completed the job. Slept for 8 seconds
Completed the job. Slept for 9 seconds
All Tasks Over!

Process finished with exit code 0

No comments:

Post a Comment