Staging
v0.5.1
https://github.com/python/cpython
Revision 4ddb2d73ac661af516a252fe697ec05e726b0f20 authored by Miss Islington (bot) on 04 September 2020, 22:30:21 UTC, committed by GitHub on 04 September 2020, 22:30:21 UTC


I added some information to the `Concurrency and Multithreading` section of the `Developing with asyncio` guide. 

This is all information that would have helped me when I started using asyncio. I incorrectly assumed that `loop.call_soon_threadsafe()` and `run_coroutine_threadsafe()` could be called from a thread in a process separate from the one that the event loop is running in. Explicitly stating that this will not work will probably help some people starting out with asyncio in the future.

I also added references to some other functions that can be used for inter-process communication without blocking the event loop. The section already mentions running blocking code in a ThreadPoolExecutor, but I think listing these other options in this section will also be helpful.
(cherry picked from commit c68c5af2dc5ada8875a662f2beaac6234eae2a5a)


Co-authored-by: Roger Iyengar <ri@rogeriyengar.com>
1 parent e77547b
History
Tip revision: 4ddb2d73ac661af516a252fe697ec05e726b0f20 authored by Miss Islington (bot) on 04 September 2020, 22:30:21 UTC
[3.8] Improve asyncio-dev 'Concurrency and Multithreading' docs (GH-20882) (GH-22010)
Tip revision: 4ddb2d7
File Mode Size
asyncio
collections
concurrent
ctypes
curses
dbm
distutils
email
encodings
ensurepip
html
http
idlelib
importlib
json
lib2to3
logging
msilib
multiprocessing
pydoc_data
site-packages
sqlite3
test
tkinter
turtledemo
unittest
urllib
venv
wsgiref
xml
xmlrpc
__future__.py -rw-r--r-- 5.0 KB
__phello__.foo.py -rw-r--r-- 64 bytes
_bootlocale.py -rw-r--r-- 1.8 KB
_collections_abc.py -rw-r--r-- 25.5 KB
_compat_pickle.py -rw-r--r-- 8.5 KB
_compression.py -rw-r--r-- 5.2 KB
_dummy_thread.py -rw-r--r-- 5.9 KB
_markupbase.py -rw-r--r-- 14.3 KB
_osx_support.py -rw-r--r-- 19.1 KB
_py_abc.py -rw-r--r-- 6.0 KB
_pydecimal.py -rw-r--r-- 223.3 KB
_pyio.py -rw-r--r-- 91.0 KB
_sitebuiltins.py -rw-r--r-- 3.0 KB
_strptime.py -rw-r--r-- 24.7 KB
_threading_local.py -rw-r--r-- 7.1 KB
_weakrefset.py -rw-r--r-- 5.6 KB
abc.py -rw-r--r-- 4.4 KB
aifc.py -rw-r--r-- 32.0 KB
antigravity.py -rw-r--r-- 477 bytes
argparse.py -rw-r--r-- 93.8 KB
ast.py -rw-r--r-- 18.8 KB
asynchat.py -rw-r--r-- 11.1 KB
asyncore.py -rw-r--r-- 19.6 KB
base64.py -rwxr-xr-x 19.9 KB
bdb.py -rw-r--r-- 31.3 KB
binhex.py -rw-r--r-- 13.6 KB
bisect.py -rw-r--r-- 2.2 KB
bz2.py -rw-r--r-- 12.3 KB
cProfile.py -rwxr-xr-x 6.4 KB
calendar.py -rw-r--r-- 24.2 KB
cgi.py -rwxr-xr-x 32.8 KB
cgitb.py -rw-r--r-- 11.8 KB
chunk.py -rw-r--r-- 5.3 KB
cmd.py -rw-r--r-- 14.5 KB
code.py -rw-r--r-- 10.4 KB
codecs.py -rw-r--r-- 35.8 KB
codeop.py -rw-r--r-- 6.2 KB
colorsys.py -rw-r--r-- 4.0 KB
compileall.py -rw-r--r-- 13.4 KB
configparser.py -rw-r--r-- 53.1 KB
contextlib.py -rw-r--r-- 24.4 KB
contextvars.py -rw-r--r-- 129 bytes
copy.py -rw-r--r-- 8.5 KB
copyreg.py -rw-r--r-- 7.0 KB
crypt.py -rw-r--r-- 3.5 KB
csv.py -rw-r--r-- 15.8 KB
dataclasses.py -rw-r--r-- 48.8 KB
datetime.py -rw-r--r-- 86.0 KB
decimal.py -rw-r--r-- 320 bytes
difflib.py -rw-r--r-- 82.1 KB
dis.py -rw-r--r-- 20.1 KB
doctest.py -rw-r--r-- 102.1 KB
dummy_threading.py -rw-r--r-- 2.7 KB
enum.py -rw-r--r-- 34.1 KB
filecmp.py -rw-r--r-- 9.6 KB
fileinput.py -rw-r--r-- 14.4 KB
fnmatch.py -rw-r--r-- 4.0 KB
formatter.py -rw-r--r-- 14.8 KB
fractions.py -rw-r--r-- 23.8 KB
ftplib.py -rw-r--r-- 34.0 KB
functools.py -rw-r--r-- 36.5 KB
genericpath.py -rw-r--r-- 4.9 KB
getopt.py -rw-r--r-- 7.3 KB
getpass.py -rw-r--r-- 5.9 KB
gettext.py -rw-r--r-- 26.5 KB
glob.py -rw-r--r-- 5.6 KB
gzip.py -rw-r--r-- 20.9 KB
hashlib.py -rw-r--r-- 9.5 KB
heapq.py -rw-r--r-- 22.3 KB
hmac.py -rw-r--r-- 6.5 KB
imaplib.py -rw-r--r-- 52.3 KB
imghdr.py -rw-r--r-- 3.7 KB
imp.py -rw-r--r-- 10.3 KB
inspect.py -rw-r--r-- 115.3 KB
io.py -rw-r--r-- 3.5 KB
ipaddress.py -rw-r--r-- 69.5 KB
keyword.py -rw-r--r-- 945 bytes
linecache.py -rw-r--r-- 5.2 KB
locale.py -rw-r--r-- 76.4 KB
lzma.py -rw-r--r-- 12.7 KB
mailbox.py -rw-r--r-- 76.8 KB
mailcap.py -rw-r--r-- 7.9 KB
mimetypes.py -rw-r--r-- 21.2 KB
modulefinder.py -rw-r--r-- 23.9 KB
netrc.py -rw-r--r-- 5.4 KB
nntplib.py -rw-r--r-- 42.2 KB
ntpath.py -rw-r--r-- 27.1 KB
nturl2path.py -rw-r--r-- 2.5 KB
numbers.py -rw-r--r-- 10.0 KB
opcode.py -rw-r--r-- 5.7 KB
operator.py -rw-r--r-- 10.5 KB
optparse.py -rw-r--r-- 59.0 KB
os.py -rw-r--r-- 38.1 KB
pathlib.py -rw-r--r-- 50.7 KB
pdb.py -rwxr-xr-x 61.2 KB
pickle.py -rw-r--r-- 62.9 KB
pickletools.py -rw-r--r-- 91.3 KB
pipes.py -rw-r--r-- 8.7 KB
pkgutil.py -rw-r--r-- 21.0 KB
platform.py -rwxr-xr-x 39.4 KB
plistlib.py -rw-r--r-- 30.5 KB
poplib.py -rw-r--r-- 14.7 KB
posixpath.py -rw-r--r-- 15.3 KB
pprint.py -rw-r--r-- 21.0 KB
profile.py -rwxr-xr-x 22.6 KB
pstats.py -rw-r--r-- 26.7 KB
pty.py -rw-r--r-- 4.7 KB
py_compile.py -rw-r--r-- 8.0 KB
pyclbr.py -rw-r--r-- 14.9 KB
pydoc.py -rw-r--r-- 104.8 KB
queue.py -rw-r--r-- 11.1 KB
quopri.py -rwxr-xr-x 7.1 KB
random.py -rw-r--r-- 28.1 KB
re.py -rw-r--r-- 15.5 KB
reprlib.py -rw-r--r-- 5.1 KB
rlcompleter.py -rw-r--r-- 6.9 KB
runpy.py -rw-r--r-- 11.8 KB
sched.py -rw-r--r-- 6.3 KB
secrets.py -rw-r--r-- 2.0 KB
selectors.py -rw-r--r-- 18.1 KB
shelve.py -rw-r--r-- 8.3 KB
shlex.py -rw-r--r-- 13.0 KB
shutil.py -rw-r--r-- 49.6 KB
signal.py -rw-r--r-- 2.2 KB
site.py -rw-r--r-- 20.8 KB
smtpd.py -rwxr-xr-x 33.9 KB
smtplib.py -rwxr-xr-x 43.3 KB
sndhdr.py -rw-r--r-- 6.9 KB
socket.py -rw-r--r-- 34.4 KB
socketserver.py -rw-r--r-- 26.3 KB
sre_compile.py -rw-r--r-- 26.1 KB
sre_constants.py -rw-r--r-- 7.0 KB
sre_parse.py -rw-r--r-- 39.3 KB
ssl.py -rw-r--r-- 49.6 KB
stat.py -rw-r--r-- 5.4 KB
statistics.py -rw-r--r-- 38.8 KB
string.py -rw-r--r-- 10.3 KB
stringprep.py -rw-r--r-- 12.6 KB
struct.py -rw-r--r-- 257 bytes
subprocess.py -rw-r--r-- 75.5 KB
sunau.py -rw-r--r-- 17.9 KB
symbol.py -rw-r--r-- 2.1 KB
symtable.py -rw-r--r-- 7.4 KB
sysconfig.py -rw-r--r-- 23.9 KB
tabnanny.py -rwxr-xr-x 11.1 KB
tarfile.py -rwxr-xr-x 91.5 KB
telnetlib.py -rw-r--r-- 22.7 KB
tempfile.py -rw-r--r-- 26.9 KB
textwrap.py -rw-r--r-- 19.0 KB
this.py -rw-r--r-- 1003 bytes
threading.py -rw-r--r-- 49.6 KB
timeit.py -rwxr-xr-x 13.2 KB
token.py -rw-r--r-- 2.3 KB
tokenize.py -rw-r--r-- 25.2 KB
trace.py -rwxr-xr-x 29.2 KB
traceback.py -rw-r--r-- 22.9 KB
tracemalloc.py -rw-r--r-- 16.7 KB
tty.py -rw-r--r-- 879 bytes
turtle.py -rw-r--r-- 140.2 KB
types.py -rw-r--r-- 9.5 KB
typing.py -rw-r--r-- 67.3 KB
uu.py -rwxr-xr-x 6.8 KB
uuid.py -rw-r--r-- 29.8 KB
warnings.py -rw-r--r-- 19.2 KB
wave.py -rw-r--r-- 17.8 KB
weakref.py -rw-r--r-- 20.9 KB
webbrowser.py -rwxr-xr-x 23.5 KB
xdrlib.py -rw-r--r-- 5.8 KB
zipapp.py -rw-r--r-- 7.4 KB
zipfile.py -rw-r--r-- 85.6 KB
zipimport.py -rw-r--r-- 30.0 KB

back to top