Skip to content

Commit ade2ce3

Browse files
Fix typos.
Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
1 parent 1c2d40f commit ade2ce3

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

Doc/howto/multiple-interpreters.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ completely isolated from the others.
6161
isolated from one another since there are few restrictions on memory
6262
access within the same process. The Python runtime makes a best
6363
effort at isolation but extension modules may easily violate that.
64-
Therefore, do not use multiple interpreters in security-senstive
64+
Therefore, do not use multiple interpreters in security-sensitive
6565
situations, where they shouldn't have access to each other's data.
6666

67-
That isolation facilitates a concurrency model based an independent
67+
That isolation facilitates a concurrency model based on independent
6868
logical threads of execution, like CSP or the actor model.
6969

7070
Each actual thread in Python, even if you're only running in the main
@@ -86,7 +86,7 @@ There are some downsides and temporary limitations:
8686
discipline about how the isolated components in your program interact
8787
* not all PyPI extension modules support multiple interpreters yet
8888
* the existing tools for passing data between interpreters safely
89-
is still relatively inefficient and limited
89+
are still relatively inefficient and limited
9090
* actually *sharing* data safely is tricky (true for free-threading too)
9191
* all necessary modules must be imported separately in each interpreter
9292
* relatively slow startup time per interpreter
@@ -103,7 +103,7 @@ Tutorial: Basics
103103
First of all, keep in mind that using multiple interpreters is like
104104
using multiple processes. They are isolated and independent from each
105105
other. The main difference is that multiple interpreters live in the
106-
same process, which makes it all more efficient and use fewer
106+
same process, which makes it all more efficient and uses fewer
107107
system resources.
108108

109109
Each interpreter has its own :mod:`!__main__` module, its own
@@ -375,7 +375,7 @@ the same rules as functions::
375375
Mutable State is not Shared
376376
---------------------------
377377

378-
Just be be clear, the underlying data of very few mutable objects is
378+
Just to be clear, the underlying data of very few mutable objects is
379379
actually shared between interpreters. The notable exceptions are
380380
:class:`Queue` and :class:`memoryview`, which we will explore in a
381381
little while. In nearly every case, the raw data is copied in
@@ -428,7 +428,7 @@ the builtin :func:`exec`, it doesn't reset the namespace it uses
428428
to run the code.
429429

430430
In the same way, running code in an interpreter does not reset that
431-
interpreter.. The next time you run code in that interpreter, the
431+
interpreter. The next time you run code in that interpreter, the
432432
:mod:`!__main__` module will be in exactly the state in which you
433433
left it::
434434

@@ -535,7 +535,7 @@ and there's an unhandled exception. In that case, Python will print
535535
the traceback and the process will exit with a failure code.
536536

537537
The behavior is very similar when code is run in an interpreter.
538-
The traceback get printed and, rather than a failure code,
538+
The traceback gets printed and, rather than a failure code,
539539
an :class:`ExecutionFailed` exception is raised::
540540

541541
from concurrent import interpreters

0 commit comments

Comments
 (0)