Kodsnack 66 - Ju fler lås du använder desto sämre är ditt liv
Kodsnack - Podcast tekijän mukaan Kristoffer, Fredrik, Tobias - Tiistaisin
Vi snackar trådar och utmaningarna i att försöka bygga program som gör flera saker på en gång. Vi drar paralleller mellan tråd- och minneshantering, ett annat område som också är både enklare och svårare än vad det först kan verka. Vi nämner några olika modeller för trådhantering och kommer in på att de verktyg man har inte bara påverkar hur man hanterar flera saker samtidigt utan också när och om det över huvud taget passar att göra det.
Avsnittet sponsras av Procera, som bland annat söker skarpa webbapplikationsutvecklare.
Diskutera gärna avsnittet på Techworld
Länkar
- Tråd - en fristående sekvens programinstruktioner
- Parallellprogrammering - när flera instruktioner utförs samtidigt
- Flerkärninga processorer - i grund och botten flera processorer förpackade i ett paket
- Asynkron IO - in- och utmatning som låter annat arbete pågå samtidigt som in- och utmatningen
- Select-loop -
- Intels core-processorer
- The free lunch is over - artikel från 2004 som hävdar att utvecklingen tvingar oss att på allvar lära oss programmera och tänka i samtidiga processer. Gratislunchen tidigare var att man kunde förlita sig på att datorernas utveckling automatiskt skulle göra ens program snabbare över tiden
- Playstation 3-arkitekturen
- Xbox 360-arkitekturen
- Playstation 2-arkitekturen var speciell men inte multitrådad eller flerkärnig på något klassiskt sätt
- Moores lag - tumegeln att antalet transistorer i integrerade kretsar (oftast använt med avseende på processorer) ungefär fördubblas vartannat år
- Erlang - språk utvecklat av Ericsson för att skapa distribuerade och feltoleranta system. Stödjer även att uppgradera eller byta ut kod utan att stoppa systemet
- Fork - anrop som skapar en fristående kopia av en process
- Unix socket - ett sätt för processer på samma operativsystem att utbyta data
- Multitrådning i Java
- POSIX-tråd-API:et
- C++ 11 och trådar
- Minnesbarriärer (memory barriers) tvingar kod att köras i en viss ordning
- Meddelandekö
- Synkronisering
- Lås
- Trådrace
- Stack trace
- Kostnader i att växla tråd
- Avsnittet om uppdatering av Plex
- SHA1-hash
- Trådpool
- Oföränderlig data - data som inte kan förändras efter att den skapats
- BSD - familj av Unix-lika operativsystem
- JVM - Javas virtuella maskin
- Vi snackade nyss om att det är arbetstagarens marknad för utvecklare just nu
- Procera networks) - veckans sponsor
- Procera söker webbapplikationsutvecklare, bland annat
- Ember
- Backbone
- Node
- Grand central dispatch - applelösning för att förbättra och förenkla hantering av trådar och samtidighet
- Reference counting
- libdispatch - biblioteket på vilket Grand central dispatch bygger
- Block i C
- Anonym funktion
- Go
- Goroutin
- Kanal - kommunikationsväg mellan goroutines
- Transaktionellt minne
- Clojure
- Communicating sequential processes
- IPV6 - senaste versionen av internetprotokollet
- OpenMP - API för multiprocesshantering med delat minne på många olika plattformar
- Fortran
- Erlangs processmodell
- Futures
- Std::future i C++ 11
- Std::promise
- Task-klassen i .net
- Node.js
- Scheme
- Continuation-passing style
- pthread_create
- Manuell minneshantering
- Trådhantering i Python
- Trådhantering i Ruby
- Trådhantering i Perl
- Pypy
- Multiprocessingpaketet för Python
- Map-funktion - funktion som tillämpar en funktion på alla element i en lista och returnerar en lista med resultat