Nov-24-2021, 01:54 AM
I have made a counter using threading I'm not sure why when the tick thread is flipping between 1 and 0 it is not consistent with its timing. Also with my incremental counter counting the changes of the other thread it changes the value in clumps.
I would expect it to output count up value then clock value and so on but it sometimes puts 2 count up values.
import threading import time countval = 0 def tick(): global countval while True: countval = 1 time.sleep(1) countval = 0 time.sleep(1) print ("clock value: " + str(countval)) def increment_value(): global countval plus = 0 flip = 1 while True: if countval == flip: plus = plus + 1 flip = 0 print ("count up value: " + str(plus)) if countval == 0: flip = 1 incr_thread = threading.Thread(target=increment_value) tick = threading.Thread(target=tick) incr_thread.start() tick.start()Here's the output I get what would cause it to be so inconsistent?
I would expect it to output count up value then clock value and so on but it sometimes puts 2 count up values.
Quote:count up value: 1
clock value: 0
count up value: 2
count up value: 3
clock value: 0
count up value: 4
count up value: 5
clock value: 0
count up value: 6
count up value: 7
clock value: 0
count up value: 8
clock value: 0
count up value: 9
clock value: 0
count up value: 10
count up value: 11
clock value: 0
count up value: 12
clock value: 0
count up value: 13
count up value: 14
clock value: 0
count up value: 15
count up value: 16