mirror of https://github.com/python/cpython
Speed test_thread up from 51.328s to 0.081s by reducing its sleep times. We
still sleep at all to make it likely that all threads are active at the same time.
This commit is contained in:
parent
b1d3d96374
commit
a14585308a
|
@ -10,9 +10,12 @@ NUMTASKS = 10
|
||||||
NUMTRIPS = 3
|
NUMTRIPS = 3
|
||||||
|
|
||||||
|
|
||||||
|
_print_mutex = thread.allocate_lock()
|
||||||
|
|
||||||
def verbose_print(arg):
|
def verbose_print(arg):
|
||||||
"""Helper function for printing out debugging output."""
|
"""Helper function for printing out debugging output."""
|
||||||
if test_support.verbose:
|
if test_support.verbose:
|
||||||
|
with _print_mutex:
|
||||||
print arg
|
print arg
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,8 +41,8 @@ class ThreadRunningTests(BasicThreadTest):
|
||||||
|
|
||||||
def task(self, ident):
|
def task(self, ident):
|
||||||
with self.random_mutex:
|
with self.random_mutex:
|
||||||
delay = random.random() * NUMTASKS
|
delay = random.random() / 10000.0
|
||||||
verbose_print("task %s will run for %s" % (ident, round(delay, 1)))
|
verbose_print("task %s will run for %sus" % (ident, round(delay*1e6)))
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
verbose_print("task %s done" % ident)
|
verbose_print("task %s done" % ident)
|
||||||
with self.running_mutex:
|
with self.running_mutex:
|
||||||
|
@ -138,11 +141,12 @@ class BarrierTest(BasicThreadTest):
|
||||||
# give it a good chance to enter the next
|
# give it a good chance to enter the next
|
||||||
# barrier before the others are all out
|
# barrier before the others are all out
|
||||||
# of the current one
|
# of the current one
|
||||||
delay = 0.001
|
delay = 0
|
||||||
else:
|
else:
|
||||||
with self.random_mutex:
|
with self.random_mutex:
|
||||||
delay = random.random() * NUMTASKS
|
delay = random.random() / 10000.0
|
||||||
verbose_print("task %s will run for %s" % (ident, round(delay, 1)))
|
verbose_print("task %s will run for %sus" %
|
||||||
|
(ident, round(delay * 1e6)))
|
||||||
time.sleep(delay)
|
time.sleep(delay)
|
||||||
verbose_print("task %s entering %s" % (ident, i))
|
verbose_print("task %s entering %s" % (ident, i))
|
||||||
self.bar.enter()
|
self.bar.enter()
|
||||||
|
|
Loading…
Reference in New Issue