Search This Blog

Showing posts with label threads. Show all posts
Showing posts with label threads. Show all posts

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

Python threads

import thread, time

def worker_thread(id):
    print "Thread ID %d is now alive" %id
    count = 1
    while True:
        print "Thread with ID %d has counter value %d" %(id, count)
        time.sleep(2)
        count += 1


for i in range(5):
    thread.start_new_thread(worker_thread, (i,))


print "Main Thread Going For An Infinite Loop"
while True:
    pass
       

OUTPUT in windows:
===================

Main Thread Going For An Infinite LoopThread ID 4 is now aliveThread ID 2 is now aliveThread ID 0 is now aliveThread ID 3 is now aliveThread ID 1 is now alive

Thread with ID 4 has counter value 1Thread with ID 2 has counter value 1Thread with ID 0 has counter value 1Thread with ID 3 has counter value 1Thread with ID 1 has counter value 1

Thread with ID 3 has counter value 2Thread with ID 2 has counter value 2Thread with ID 4 has counter value 2Thread with ID 0 has counter value 2Thread with ID 1 has counter value 2

Thread with ID 3 has counter value 3Thread with ID 0 has counter value 3Thread with ID 2 has counter value 3Thread with ID 4 has counter value 3Thread with ID 1 has counter value 3

Thread with ID 0 has counter value 4Thread with ID 3 has counter value 4Thread with ID 2 has counter value 4Thread with ID 4 has counter value 4Thread with ID 1 has counter value 4