Converted "::" to proper python code-block directives

This commit is contained in:
Michael Bryan
2016-06-03 16:15:00 +08:00
parent 75e957e89e
commit dde23c230e
+20 -7
View File
@@ -258,7 +258,9 @@ executor when the task is computationally expensive.
There are two main ways of executing things in parallel using the two There are two main ways of executing things in parallel using the two
Executors. One way is with the `map(func, iterables)` method. This works Executors. One way is with the `map(func, iterables)` method. This works
almost exactly like the builtin `map()` function, except it will execute almost exactly like the builtin `map()` function, except it will execute
everything in parallel. :: everything in parallel. :
.. code-block:: python
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
import requests import requests
@@ -301,7 +303,8 @@ add_done_callback(fn)
Attach a callback function that will be executed (as `fn(future)`) when the Attach a callback function that will be executed (as `fn(future)`) when the
scheduled callable returns. scheduled callable returns.
::
.. code-block:: python
from concurrent.futures import ProcessPoolExecutor, as_completed from concurrent.futures import ProcessPoolExecutor, as_completed
@@ -355,7 +358,9 @@ The standard library comes with a `threading`_ module that allows a user to
work with multiple threads manually. work with multiple threads manually.
Running a function in another thread is as simple as passing a callable and Running a function in another thread is as simple as passing a callable and
it's arguments to `Thread`'s constructor and then calling `start()`:: it's arguments to `Thread`'s constructor and then calling `start()`:
.. code-block:: python
from threading import Thread from threading import Thread
import requests import requests
@@ -367,12 +372,16 @@ it's arguments to `Thread`'s constructor and then calling `start()`::
some_thread = Thread(get_webpage, 'http://google.com/') some_thread = Thread(get_webpage, 'http://google.com/')
some_thread.start() some_thread.start()
To wait until the thread has terminated, call `join()`:: To wait until the thread has terminated, call `join()`:
.. code-block:: python
some_thread.join() some_thread.join()
After calling `join()`, it is always a good idea to check whether the thread is After calling `join()`, it is always a good idea to check whether the thread is
still alive (because the join call timed out):: still alive (because the join call timed out):
.. code-block:: python
if some_thread.is_alive(): if some_thread.is_alive():
print("join() must have timed out.") print("join() must have timed out.")
@@ -389,7 +398,10 @@ which are difficult to debug. A good example is this `stackoverflow post`_.
The way this can be avoided is by using a `Lock`_ that each thread needs to The way this can be avoided is by using a `Lock`_ that each thread needs to
acquire before writing to a shared resource. Locks can be acquired and released acquire before writing to a shared resource. Locks can be acquired and released
through either the contextmanager protocol (`with` statement), or by using through either the contextmanager protocol (`with` statement), or by using
`acquire()` and `release()` directly. Here is a (rather contrived) example:: `acquire()` and `release()` directly. Here is a (rather contrived) example:
.. code-block:: python
from threading import Lock, Thread from threading import Lock, Thread
@@ -402,7 +414,8 @@ through either the contextmanager protocol (`with` statement), or by using
def monitor_website(some_website): def monitor_website(some_website):
""" """
Monitor a website and then if there are any changes, log them to disk. Monitor a website and then if there are any changes,
log them to disk.
""" """
while True: while True:
changes = check_for_changes(some_website) changes = check_for_changes(some_website)