Simple threaded counters (parameterized)


The same as the previous one, but with parameters controlling the numbers of threads and the range of the counter.


examples/threads/simple_counter_parameterized.py
import threading
import sys

num_threads, count_till = 3, 5

class ThreadedCount(threading.Thread):
    def run(self):
        thread = threading.current_thread()
        print(f'{thread.name} - start')
        for cnt in range(count_till):
            print(f'{thread.name} - count {cnt}')
        print(f'{thread.name} - end')
        return

threads = []
for ix in range(num_threads):
    threads.append(ThreadedCount())

for th in threads:
    th.start()

print('main - running {} threads'.format(threading.active_count()))

for th in threads:
    th.join()
print("main - thread is done")

Thread-1 - start
Thread-1 - count 0
Thread-1 - count 1
Thread-1 - count 2
Thread-1 - count 3
Thread-1 - count 4
Thread-1 - end
Thread-2 - start
Thread-2 - count 0
Thread-2 - count 1
Thread-2 - count 2
Thread-2 - count 3
Thread-2 - count 4
Thread-2 - end
Thread-3 - start
Thread-3 - count 0
Thread-3 - count 1
Thread-3 - count 2
Thread-3 - count 3
Thread-3 - count 4
Thread-3 - end
main - running 1 threads
main - thread is done