multithreading - threading - python thread example
Quali sono alcune buone risorse per l'apprendimento della programmazione a thread? (12)
Se lavori con C #, il libro "Programmazione con thread C # 2008 e 2005", di Gaston C. Hillar - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and- 2005-threaded-programming / book , ti aiuterà. Altamente raccomandato per i programmatori C #, perché puoi scaricare il codice con divertenti esempi che sfruttano il tuo computer multicore. Il libro è una bella guida con tanto codice da praticare. Racconta storie mentre spiega i concetti più difficili.
Con l'aumento delle CPU multicore sul desktop, le competenze di multithreading diventeranno una risorsa preziosa per i programmatori. Puoi consigliare alcune buone risorse (libri, esercitazioni, siti Web, ecc.) Per un programmatore che sta cercando di apprendere la programmazione con thread?
Dai un'occhiata a " The Free Lunch Is Over " di Herb Sutter e alla sua serie di articoli su Effective Concurrency .
http://www.cilk.com/multicore-e-book/
Questa è una buona panoramica generale della sitution, se stai cercando tutorial e libri potrebbe essere meglio specificare una lingua come punto di partenza in modo da poter scherzare con un po 'di codice.
Il linguaggio di programmazione Erlang offre uno stile di programmazione simultanea facile da usare. Non si può mai effettivamente utilizzare Erlang, ma i concetti sono trasportabili in altre lingue. Potresti voler leggere il libro Programming Erlang: Software for a Concurrent World .
Gli appassionati di programmazione funzionale affermano che non è necessario imparare nulla di nuovo. Basta usare un linguaggio puramente funzionale, e il compilatore o l'interprete eseguirà automaticamente il parallelismo di tutto. Quindi potresti voler imparare Haskell, OCaml o un altro linguaggio funzionale.
Ho letto (la maggior parte) Java Concurrency in Practice di Brian Goetz, che è molto buono.
C'è ovviamente un tema basato su Java che scorre attraverso il libro (usando le implementazioni specifiche di thread, lock, ecc.), Ma praticamente tutti i principi possono essere applicati ad altri linguaggi.
La home page dell'autore contiene un elenco di articoli che ha scritto, alcuni dei quali includono articoli correlati al threading. Forse inizia da lì e se ti piace il suo stile, compra il libro.
Non so cosa stai cercando esattamente, ma se stai facendo lo sviluppo di WindowsForms il seguente post sul blog vale ogni minuto di lettura: Thread dell'input di WinForms Invoca: una revisione approfondita di Invoke / BeginInvoke / InvokeRequred
Per un'ottima guida e un riferimento per la programmazione simultanea in C # (o .NET in generale), consiglierei MSDN Ciò che ogni dev deve sapere sulle app multithreaded di Vance Morrison su MSDN. Contiene molte informazioni sulle migliori pratiche e avvertimenti sullo sviluppo multithread
Se vuoi provare a fare una versione molto parallela di un compito semplice, o vedere soluzioni reali, potresti fare peggio di guardare il progetto del wide finder . Fondamentalmente si tratta di come eseguire la corrispondenza regolare delle espressioni regolari dei file di registro in modo efficiente, ma cercando di aggiungere il minor numero possibile di codice.
I partecipanti hanno presentato soluzioni in molte lingue diverse e i risultati delle prestazioni sono pubblicati. Il progetto originale è ora terminato e ora è disponibile il wide finder 2 .
CodingHorror ha una buona introduzione al wide finder .
Per un trattamento completo e approfondito della materia, con un buon equilibrio tra informatica e pratica, raccomando The Art of Multiprocessor Programming . Un sacco di esempi sono nel codice orientato agli oggetti, cioè Java, con altre lingue sparse ovunque. Dipende solo dall'argomento trattato. Ciò che amo di questo libro è che discute su come gli algoritmi comuni dovrebbero essere implementati in un design concorrente. Certo, c'è molto di più!
Per concetti generali e un trattamento di pthreads, mi piace molto la programmazione con i thread POSIX . Essendo la libreria e l'API che è, è in C.
Per gli sviluppatori di Windows e C #, controlla il blog di Joe Duffy . Joe lavora su librerie parallele, infrastrutture e modelli di programmazione nella divisione sviluppatori di Microsoft. Ha un libro in arrivo a Nov. 2008 intitolato Concurrent Programming on Windows ( Amazon link ).
Inoltre, non perdetevi il blog del Padrino: Herb Sutter's Sutter's Mill . Ha collegamenti a tutti i suoi articoli nel diario del Dr. Dobb e altro ancora. Fai clic sulla sua categoria Concurrency .
Gestisco un linkblog per articoli di concorrenza, blog e progetti a:
Di solito pubblico un link o due al giorno su una varietà di argomenti (thread, attori, locking, programmazione parallela) in una varietà di ambienti (Erlang, Java, Scala, .NET, C ++, Ruby, Python, ecc.).
Scrivo sul multithreading e sulla concorrenza in C ++ sul mio blog . Sto anche scrivendo un libro sulla concorrenza in C ++: C ++ Concurrency in Action .
I siti Web dei produttori di CPU hanno alcuni contenuti interessanti:
http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel
http://software.intel.com/en-us/multi-core
Anche la libreria di threading opensource di Intel ha alcuni buoni riferimenti: