bpo-30357: test_thread now uses threading_cleanup() (#1592)

test_thread: setUp() now uses support.threading_setup() and
support.threading_cleanup() to wait until threads complete to avoid
random side effects on following tests.

Co-Authored-By:  Grzegorz Grzywacz <grzegorz.grzywacz@nazwa.pl>
diff --git a/Lib/test/test_thread.py b/Lib/test/test_thread.py
index ef3059b..3909b75 100644
--- a/Lib/test/test_thread.py
+++ b/Lib/test/test_thread.py
@@ -20,6 +20,7 @@
         with _print_mutex:
             print(arg)
 
+
 class BasicThreadTest(unittest.TestCase):
 
     def setUp(self):
@@ -31,6 +32,9 @@
         self.running = 0
         self.next_ident = 0
 
+        key = support.threading_setup()
+        self.addCleanup(support.threading_cleanup, *key)
+
 
 class ThreadRunningTests(BasicThreadTest):
 
diff --git a/Misc/ACKS b/Misc/ACKS
index 0537fa4..246a50b 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -555,6 +555,7 @@
 Daniel Andrade Groppe
 Dag Gruneau
 Filip GruszczyƄski
+Grzegorz Grzywacz
 Thomas Guettler
 Yuyang Guo
 Anuj Gupta
diff --git a/Misc/NEWS b/Misc/NEWS
index 9583149..39f583f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1183,6 +1183,11 @@
 Tests
 -----
 
+* bpo-30357: test_thread: setUp() now uses support.threading_setup() and
+  support.threading_cleanup() to wait until threads complete to avoid
+  random side effects on following tests. Initial patch written by Grzegorz
+  Grzywacz.
+
 - bpo-30197: Enhanced functions swap_attr() and swap_item() in the
   test.support module.  They now work when delete replaced attribute or item
   inside the with statement.  The old value of the attribute or item (or None