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
