diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 770f72c..1bc5c71 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -129,24 +129,22 @@ class _RandomNameSequence:
 
     _RandomNameSequence is an iterator."""
 
-    characters = "abcdefghijklmnopqrstuvwxyz0123456789_"
-
-    @property
-    def rng(self):
-        cur_pid = _os.getpid()
-        if cur_pid != getattr(self, '_rng_pid', None):
-            self._rng = _Random()
-            self._rng_pid = cur_pid
-        return self._rng
+    def __init__(self, characters="abcdefghijklmnopqrstuvwxyz0123456789_", length=8, rng=None):
+        if rng is None:
+            rng = _Random()
+        if hasattr(_os, "fork"):
+            # prevent same state after fork
+            _os.register_at_fork(after_in_child=rng.seed)
+        self.rng = rng
+        self.characters = characters
+        self.length = length
 
     def __iter__(self):
         return self
 
     def __next__(self):
         c = self.characters
-        choose = self.rng.choice
-        letters = [choose(c) for dummy in range(8)]
-        return ''.join(letters)
+        return ''.join(self.rng.choices(c, k=self.length))
 
 def _candidate_tempdir_list():
     """Generate a list of candidate temporary directories which
