diff --git a/src/twisted/internet/asyncioreactor.py b/src/twisted/internet/asyncioreactor.py
index cd1cf65f05d..03b2d8ecb24 100644
--- a/src/twisted/internet/asyncioreactor.py
+++ b/src/twisted/internet/asyncioreactor.py
@@ -9,7 +9,7 @@
 
 import errno
 import sys
-from asyncio import AbstractEventLoop, get_event_loop
+from asyncio import AbstractEventLoop, get_running_loop, new_event_loop, set_event_loop
 from typing import Dict, Optional, Type
 
 from zope.interface import implementer
@@ -47,7 +47,11 @@ class AsyncioSelectorReactor(PosixReactorBase):
 
     def __init__(self, eventloop: Optional[AbstractEventLoop] = None):
         if eventloop is None:
-            _eventloop: AbstractEventLoop = get_event_loop()
+            try:
+                _eventloop: AbstractEventLoop = get_running_loop()
+            except RuntimeError:
+                _eventloop = new_event_loop()
+            set_event_loop(_eventloop)
         else:
             _eventloop = eventloop
 
