Re: Threads across programming languages

Liste des GroupesRevenir à l c 
Sujet : Re: Threads across programming languages
De : chris.m.thomasson.1 (at) *nospam* gmail.com (Chris M. Thomasson)
Groupes : comp.lang.c++ comp.lang.c
Date : 04. May 2024, 22:03:56
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v164bb$1cg4b$3@dont-email.me>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 5/4/2024 8:51 AM, Ross Finlayson wrote:
On 05/03/2024 08:47 PM, Chris M. Thomasson wrote:
On 5/3/2024 8:44 PM, Chris M. Thomasson wrote:
On 4/30/2024 2:04 AM, Stefan Ram wrote:
ram@zedat.fu-berlin.de (Stefan Ram) wrote or quoted:
The GIL only prevents multiple Python statements from being
interpreted simultaneously, but if you're waiting on inputs (like
sockets), it's not active, so that could be distributed across
multiple cores.
>
   Disclaimer: This is not on-topic here as it discusses Python,
   not C or C++.
>
   FWIW, here's some multithreaded Python code modeled after what
   I use in an application.
>
   I am using Python to prepare a press review for me, getting article
   headers from several newssites, removing all headers matching a list
   of regexps, and integrating everything into a single HTML resource.
   (I do not like to read about Lindsay Lohan, for example, so articles
   with the text "Lindsay Lohan" will not show up on my HTML review.)
>
   I'm usually downloading all pages at once using Python threads,
   which will make sure that a thread uses the CPU while another
   thread is waiting for TCP/IP data. This is the code, taken from
   my Python program and a bit simplified:
>
from multiprocessing.dummy import Pool
>
...
>
with Pool( 9 if fast_internet else 1 )as pool:
     for i in range( 9 ):
         content[ i ] = pool.apply_async( fetch,[ uris[ i ] ])
     pool.close()
     pool.join()
>
   . I'm using my "fetch" function to fetch a single URI, and the
   loop starts nine threads within a thread pool to fetch the
   content of those nine URIs "in parallel". This is observably
   faster than corresponding sequential code.
>
   (However, sometimes I have a slow connection and have to download
   sequentially in order not to overload the slow connection, which
   would result in stalled downloads. To accomplish this, I just
   change the "9" to "1" in the first line above.)
>
   In case you wonder about the "dummy":
>
|The multiprocessing.dummy module module provides a wrapper
|for the multiprocessing module, except implemented using
|thread-based concurrency.
|
|It provides a drop-in replacement for multiprocessing,
|allowing a program that uses the multiprocessing API to
|switch to threads with a single change to import statements.
>
   . So, this is an area where multithreading the Python way is easy
   to use and enhances performance even in the presence of the GIL!
>
Agreed. However, its a very small sample. Try to download 60,000 files
concurrently from different sources all at once. This can be where the
single lock messes with performance...
>
Certain sources are faster than others. That's always fun... Think of
timeout logic... ;^D
 In re-routines timeout logic is implemented because they eventually
come up and if expired then are retired.
 Now, using words like retire gets involved when it's contextual
all the way to mu-ops of the core processor pipeline and the
notions of the usual model of speculative execution in modern
chips about mu-ops, pipelines, caches, and the execution order
and memory barriers and ordering guarantees of instruction
according to the chip.
 Here though it means that implementing time out in open
items, gets involved checking each item at an interval
that represents the hard-timeout vis-a-vis the "it's expired"
timeout.
 So in re-routines is that there's simply enough an auxiliary
data structure a task-set besides a task-queue, and going
through the items to finding expired items, yet, that's its
own sort of busy-working data structure, in a world where
items have apiece their own granular timeout lifetimes and intervals.
 It's similar for open connections and something like as sweeper/closer,
with regards to protocol timeouts, socket timeouts, and these kinds
of things, with regards to whatever streams are implemented in
whatever system or user-space streams from sockets or datagrams.
 Something like XmlHttpRequest or whatwg fetch, runs in its
own threads, sort of invisibly to a usual event-loop.
 
The timeout logic was fun to play with back when I was programming server code. A connection would come in, and be very fast get its job done, got its result: over and out. Now, when a connection would come in, do a little something then stall for a while... My time code would flag it as a potential stalled connection. The problem is a bad actor can make a connection, send some data, then stop. Make a thousand others that do it. Make another ten thousand connections that do it via infected proxy computers. I wrote a program that simulated these scenarios. The timeout code needed to refer to a little database the server had about prior "potential" bad actors. It's a touchy situation to say the least.

Date Sujet#  Auteur
29 Apr 24 * Threads across programming languages141Stefan Ram
29 Apr 24 +* Re: Threads across programming languages98Paavo Helde
29 Apr 24 i`* Re: Threads across programming languages97Lawrence D'Oliveiro
29 Apr 24 i +* Re: Threads across programming languages85Chris M. Thomasson
30 Apr 24 i i+* Re: Threads across programming languages3Lawrence D'Oliveiro
30 Apr 24 i ii`* Re: Threads across programming languages2Chris M. Thomasson
30 Apr 24 i ii `- Re: Threads across programming languages1Lawrence D'Oliveiro
1 May 24 i i`* Re: Threads across programming languages81Bonita Montero
1 May 24 i i +* Re: Threads across programming languages79Lawrence D'Oliveiro
1 May 24 i i i`* Re: Threads across programming languages78Bonita Montero
1 May 24 i i i `* Re: Threads across programming languages77Lawrence D'Oliveiro
1 May 24 i i i  +* Re: Threads across programming languages75Bonita Montero
1 May 24 i i i  i`* Re: Threads across programming languages74Lawrence D'Oliveiro
2 May 24 i i i  i +* Re: Threads across programming languages41Bonita Montero
2 May 24 i i i  i i+* Re: Threads across programming languages28David Brown
2 May 24 i i i  i ii`* Re: Threads across programming languages27Bonita Montero
3 May 24 i i i  i ii +- Re: Threads across programming languages1Lawrence D'Oliveiro
3 May 24 i i i  i ii `* Re: Threads across programming languages25David Brown
3 May 24 i i i  i ii  `* Re: Threads across programming languages24Bonita Montero
3 May 24 i i i  i ii   `* Re: Threads across programming languages23David Brown
3 May 24 i i i  i ii    `* Re: Threads across programming languages22Bonita Montero
3 May 24 i i i  i ii     `* Re: Threads across programming languages21Michael S
3 May 24 i i i  i ii      +- Re: Threads across programming languages1Bonita Montero
4 May 24 i i i  i ii      +* Re: Threads across programming languages13Lawrence D'Oliveiro
4 May 24 i i i  i ii      i`* Re: Threads across programming languages12Paavo Helde
5 May 24 i i i  i ii      i `* Re: Threads across programming languages11Lawrence D'Oliveiro
5 May 24 i i i  i ii      i  +- Re: Threads across programming languages1Paavo Helde
5 May 24 i i i  i ii      i  `* Re: Threads across programming languages9Michael S
5 May 24 i i i  i ii      i   +- Re: Threads across programming languages1Bonita Montero
13 May 24 i i i  i ii      i   `* Re: Threads across programming languages7Lawrence D'Oliveiro
13 May 24 i i i  i ii      i    +* Re: Threads across programming languages5Michael S
13 May 24 i i i  i ii      i    i+* Re: Threads across programming languages3Bonita Montero
18 May 24 i i i  i ii      i    ii`* Re: Threads across programming languages2Lawrence D'Oliveiro
22 May 24 i i i  i ii      i    ii `- Re: Threads across programming languages1Tim Rentsch
18 May 24 i i i  i ii      i    i`- Re: Threads across programming languages1Lawrence D'Oliveiro
15 May 24 i i i  i ii      i    `- Re: Threads across programming languages1Tim Rentsch
18 May 24 i i i  i ii      `* Re: Threads across programming languages6Tim Rentsch
18 May 24 i i i  i ii       `* Re: Threads across programming languages5Keith Thompson
23 May 24 i i i  i ii        `* Re: Threads across programming languages4Tim Rentsch
24 May 24 i i i  i ii         `* Re: Threads across programming languages3Keith Thompson
30 May 24 i i i  i ii          `* Re: Threads across programming languages2Malcolm McLean
30 May 24 i i i  i ii           `- Re: Threads across programming languages1Keith Thompson
3 May 24 i i i  i i`* Re: Threads across programming languages12Lawrence D'Oliveiro
3 May 24 i i i  i i `* Re: Threads across programming languages11Bonita Montero
3 May 24 i i i  i i  +* Re: Threads across programming languages2Bonita Montero
3 May 24 i i i  i i  i`- Re: Threads across programming languages1Bonita Montero
4 May 24 i i i  i i  `* Re: Threads across programming languages8Lawrence D'Oliveiro
4 May 24 i i i  i i   +* Re: Threads across programming languages3Chris M. Thomasson
4 May 24 i i i  i i   i`* Re: Threads across programming languages2Chris M. Thomasson
4 May 24 i i i  i i   i `- Re: Threads across programming languages1Chris M. Thomasson
4 May 24 i i i  i i   `* Re: Threads across programming languages4Bonita Montero
4 May 24 i i i  i i    +- Re: Threads across programming languages1Chris M. Thomasson
5 May 24 i i i  i i    `* Re: Threads across programming languages2Lawrence D'Oliveiro
5 May 24 i i i  i i     `- Re: Threads across programming languages1Chris M. Thomasson
2 May 24 i i i  i `* Re: Threads across programming languages32Chris M. Thomasson
2 May 24 i i i  i  +- Re: Threads across programming languages1Chris M. Thomasson
2 May 24 i i i  i  `* Re: Threads across programming languages30Lawrence D'Oliveiro
2 May 24 i i i  i   +* Re: Threads across programming languages9Bonita Montero
3 May 24 i i i  i   i`* Re: Threads across programming languages8Lawrence D'Oliveiro
3 May 24 i i i  i   i `* Re: Threads across programming languages7Bonita Montero
4 May 24 i i i  i   i  `* Re: Threads across programming languages6Lawrence D'Oliveiro
4 May 24 i i i  i   i   +* Re: Threads across programming languages3Chris M. Thomasson
4 May 24 i i i  i   i   i`* Re: Threads across programming languages2Lawrence D'Oliveiro
4 May 24 i i i  i   i   i `- Re: Threads across programming languages1Chris M. Thomasson
4 May 24 i i i  i   i   `* Re: Threads across programming languages2Bonita Montero
4 May 24 i i i  i   i    `- Re: Threads across programming languages1Chris M. Thomasson
2 May 24 i i i  i   `* Re: Threads across programming languages20Chris M. Thomasson
3 May 24 i i i  i    `* Re: Threads across programming languages19Lawrence D'Oliveiro
3 May 24 i i i  i     `* Re: Threads across programming languages18Chris M. Thomasson
3 May 24 i i i  i      +* Re: Threads across programming languages3Kaz Kylheku
3 May 24 i i i  i      i`* Re: Threads across programming languages2Chris M. Thomasson
3 May 24 i i i  i      i `- Re: Threads across programming languages1Chris M. Thomasson
3 May 24 i i i  i      +* Re: Threads across programming languages3Lawrence D'Oliveiro
3 May 24 i i i  i      i`* Re: Threads across programming languages2Ross Finlayson
8 May 24 i i i  i      i `- Re: Threads across programming languages1Ross Finlayson
3 May 24 i i i  i      `* Re: Threads across programming languages11David Brown
3 May 24 i i i  i       `* Re: Threads across programming languages10Michael S
3 May 24 i i i  i        `* Re: Threads across programming languages9Bonita Montero
3 May 24 i i i  i         `* Re: Threads across programming languages8Michael S
4 May 24 i i i  i          +- Re: Threads across programming languages1Lawrence D'Oliveiro
4 May 24 i i i  i          +* Re: Threads across programming languages3bart
4 May 24 i i i  i          i`* Re: Threads across programming languages2Michael S
5 May 24 i i i  i          i `- Re: Threads across programming languages1David Brown
4 May 24 i i i  i          `* Re: Threads across programming languages3Bonita Montero
4 May 24 i i i  i           +- Re: Threads across programming languages1Michael S
4 May 24 i i i  i           `- Re: Threads across programming languages1Chris M. Thomasson
1 May 24 i i i  `- Re: Threads across programming languages1Chris M. Thomasson
1 May 24 i i `- Re: Threads across programming languages1Chris M. Thomasson
1 May 24 i `* Re: Threads across programming languages11Bonita Montero
1 May 24 i  `* Re: Threads across programming languages10Lawrence D'Oliveiro
1 May 24 i   `* Re: Threads across programming languages9Bonita Montero
1 May 24 i    `* Re: Threads across programming languages8Lawrence D'Oliveiro
1 May 24 i     `* Re: Threads across programming languages7Bonita Montero
1 May 24 i      `* Re: Threads across programming languages6Lawrence D'Oliveiro
1 May 24 i       +- Re: Threads across programming languages1Michael S
2 May 24 i       +- Re: Threads across programming languages1Lawrence D'Oliveiro
2 May 24 i       `* Re: Threads across programming languages3Bonita Montero
2 May 24 i        +- Re: Threads across programming languages1Chris M. Thomasson
4 May 24 i        `- Re: Threads across programming languages1Lawrence D'Oliveiro
29 Apr 24 +* Re: Threads across programming languages19Bonita Montero
29 Apr 24 i`* Re: Threads across programming languages18Lawrence D'Oliveiro
29 Apr 24 +* Re: Threads across programming languages15Ross Finlayson
29 Apr 24 +- Re: Threads across programming languages1Chris M. Thomasson
29 Apr 24 +- Re: Threads across programming languages1Lawrence D'Oliveiro
30 Apr 24 `* Re: Threads across programming languages6Stefan Ram

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal