question

Upvotes
Accepted
4 2 0 5

Multi threading Python Rest API examples

Hi,
Can you share any examples to multi-thread requests to get data from Reuters TRTH in Python?

tick-history-rest-apimulti-threading
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
Accepted
13.7k 26 8 12

@habinsky, I'm sorry, we do not have multi threaded Python samples available.

That said, you can easily:

  • Submit several on-demand requests in parallel, and then monitor each one's status to retrieve the data once the extraction is complete.
  • Create several scheduled requests, and then monitor each one's status to retrieve the data once the extraction is complete.

You just need to be aware of the limits, described in the TRTH best practices and limits document.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1 0 0 0

The Python Global Interpreter Lock or GIL, in simple words, is a mutex (or a lock) that allows only one thread to hold the control of the Python interpreter. All the GIL does is make sure only one thread is executing Python code at a time; control still switches between threads. What the GIL prevents then, is making use of more than one CPU core or separate CPUs to run threads in parallel.


Python threading is great for creating a responsive GUI, or for handling multiple short web requests where I/O is the bottleneck more than the Python code. It is not suitable for parallelizing computationally intensive Python code, stick to the multiprocessing module for such tasks or delegate to a dedicated external library. For actual parallelization in Python, you should use the multiprocessing module to fork multiple processes that execute in parallel (due to the global interpreter lock, Python threads provide interleaving, but they are in fact executed serially, not in parallel, and are only useful when interleaving I/O operations). However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously.



icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.