Merken

Introduction to Concurrency in Ruby

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and that was the end of the world and when it's nice and if you wanna join them little demo later on so if you wanna join efforts and also like you could go to we talk about a peace plan is proposed on
and so today I'm going to talk about that you can grow a C and will be using just very simple stuff from the from the standard library so um I
work on monitoring products for will be called actually know and we uh we support a lot of different types of web servers and tools which kind of forced me to learn about the about about all the different ways you can you can grow she will be and then I realize that that years before this all always sort of sound like an intimidating subjects and I felt like that in Williamstown what was going on when was actually quite a bit easier than a file so today I'm here to share some of that these insights for you so in general there's a few
exceptions to this but for simplicity sake uh we're going to be talking about these 3 main ways of doing comparison so you can know you can either run multiple processors you can run multiple threats or you can run the event loop and and have that kind of fake conversion in a sense um so you're probably familiar with would these are free web server side and they all use 1 of these models what would the abandoned sites the and so the thing uh so some of them to try and do this uh discuss this subject by the very simple and jet server that's kind of like select so I implemented the little chat chat server in man but implemented little chat server Robie in these 3 different ways so my colleague Y over there is already learned into it hopefully the file of course is more working to I write the back working so well here's are are very minimalistic set I'm afraid you won't be getting millions of VC funding for this but and this works so I
will start with were discussing the chat jetliner so this follows whole client lobby if you check out repository and and this users do this basic networking store from the Ruby standard library to to make a connection so start by requiring socket which brings in all this is never project and then opens at to speak connection to the tuition and uh address and it's never do talk little threat that there and that just just uh also supply and 2 for incoming data so basically and and the server sends back to the client will get rid not to look to the command line of finally it just listens on the command line this this STD in the gets basically just wait for you to to type something press Enter and then it will it will trigger that loop um and
then put set on clients so and that means that gets written back to the server server server receives data and serve accommodated data back to the client and the client is able to uh beta again user input from you or alright stuff at the server wrote back to the to the command line and basically this is a full image um I'm disorder say does support and the animated GIFs but the so
and this as crustose freeways to the dualism will be and the 1st and most simple way Consensus to work is to use multiple processors so this is how you know so what happens is that that and as 1 must a process that get started by a by a system and whenever some work needs to be done that force to into a job process and that's all processing useful work and and and then might get kill again or or or will live for a little bit lower and his work process and does the actual work a master process kind of managers um and these these processes um and if you look at this on your activity monitoring macro or on top on their on server it will would look something like this so you've got a master and you co-workers you could actually kill 1 of these workers or just let it crashed and then must process will make sure that the new 1 gets bonds and and so this is pretty resilient architecture as so what does it look like in the end will be um will 1st topic with
that with what's actually started the surface so this piece of code is the same for all the examples they should we start at the CP server uh also reports and that from that moment on just listen for any for a new incoming connections and and since for using not brought multiprocess here uh these processes have a completely different name space so so any time you add a few modify some some some variable in in 1 of 2 processes this 1 influence the other ones adults they're actually completely isolated by the operating system so that's why we need a way to communicate between those because if we receive some message on on a process that sending 1 connection need to be able to write it to all these other connections that are actually different processes so I've simplified is there which you can see the full code the media in the examples what it comes down to is that we use a bike as you might have seen that on command line if you you can use this to you at too rare true of for example and what happens is that a pipe is is just a stream of data from 1 process the view to the order for a few open a piping rights from Boston along the data will be listenable through from process so we are so so we've got this we just set of this communication the data and the examples and that will magically make sure that all the other processes also get on the chat messages the and then we know that then we get get to the management part of our works so this is very similar to what you know and so we start loop and and I have tried to accept a new connection from server so server about except this weights for a for somebody to connect and whenever this happens it's it's it's the next iteration of the loop that we set up a pipe so we can write between new process and master the and we add this uh this despite the due to the list processes in the master and to make sure that we can also write back to the child process and then there's so little magical word that that does a lot of stuff um which is 4 what form does is it just makes a complete copy of to process exactly as it is at that moment so so basically and knowledgeable for uh and uh anything that happens within the do and block is a new process and and anything behind it is the process so he'll was still there and there's a new 1 which is this a complete cloud would start doing work in like a moment at the moment do ends like ever anything story anything inside of the 1 which is this is this is actually quite our concept Directorate your head around to effort you really have to try this out a few times a year machine to really get a there are no I didn't really get any of the explanations already had see for myself to be able to withstand it and so now all know what happened is that we have new we have a job process and district job process is aware of which connect all of which stream it's connected to so next up and where we can actually do some muscle muscle jet logic so uh the 1st thing we do is we the 1st line from the sockets and just assume this nickname that's kind of the protocol for jet server client dislike tightening name as the 1st the 1st line and we described that little messy inspected clients and and then what happens is that this is not my line for 1 is again simplified this starts simple little threat that rights income message affected clients so I'm sorry to say we do actually track the animal to presses example to make it all work or was it you will be able to really implement the whole thing and and then it just basically way street the types of things so there's a while loop at the at the bottom it tries to read uh a line of a line of text from soccer and that's and that's right vectors line of text back on to the pipe and by price vector to the most process so it's so it's X it's quite a few moving parts so in this case the dude multiprocessors actually a bit more clout than that the other versions that and sorry uh
escape 1 thing in the so what happens next is that the master process can right this text message back to all the children and the children come right back to your to your terminal and you will see how this works in the demo at like hottest operates in reality in the demo at the end of stock so on
this a few good things about motor process uh across so 1 thing is that you can basically forget that such a thing as compared exists because anything that happens in the process is just executed and single products and now uh there's no way it like and the address safety issues issues can arise and am the next good thing is that that workers can compression so for example get prior really likes to small so both uniform rescue which were written by them um uses model because they do a lot of call outs to get command from command line and that and that has a tendency to use a lot of memory and crashed so they they would be uh they would have issues with try model because the threat could be bring down the entire process in this case a muscle just we put anything the questions and the downside is is that it uses a lot of resources so and if any time you want to do anything that happens at the same time you need there multiple processes which use a memory of place and so you know it's it's actually very poor choice for jet surface but it does work as we'll see bit of which brings us to the next model which is melted Triton which makes a lot more sense for a for a jet application action at what happens here is is is again a single process and now you can boot within this process you can boot tracks that that the work that they still share all the all the memories so if you mutate something in memory in 1 factor it will also be different in there and on trends so and
that looks something like this so again we have to exactly the same mass disappears server that get distribution from it gets uh opened the and but then things or the different so we do here is but basically using this messages arrays database so any time uh a new message comes in we just put into disarray weak so we can store at the want of people but if multiple threats will be reading and writing to this array at the same time and it might actually end up going the coming into an inconsistent state because 1 could you could be reading stuff well let me come on this incident stuff and and maybe Dana message will be written to offline for example and that's why we need a new tax so only and i is basically like traffic lights so you um so it it is a threat to can can unlock new mutants and uh basically telling you decks I'm working with this data at the moment and then when it releases the lock then another trends can can look at them and also work with the data the conduit at same time so this and forces that uh that 2 Data Stations in their consistence states the downside of course is a density if you have a lot of walking down the whole thing might actually be just as slow as a single process uh uh application because because if all the tracks conflict and of just doing work 1 by 1 instead of currently then you still there is still 1 of concurrent system so if you're working work more pain but also the database context it's it's kind of like how works to so next up but uh we do the same server that don't accept called Tongan waiting for a for somebody connected to server and the set of flocking were actually starting attract so anything that happens within the doing the analog it is running in separate from within the same process that's uh which is which is running sort of independently of the other artifacts so again a reading dead nicknamed from soccer and writing something back to the sockets um and here it's slightly different so instead of having to set of all these pipes we we run a little a we really little tried again that distance in common messages back to the client and reads messages from the client but if you look at the example since a little see implementation of these 2 methods error but there are also for simplicity sake I didn't add that here and I want a new message comes in then we have uh would should this push it onto onto this this messages right which is kind of like common database so we call Music still synchronize which show which locks to new text and make sure that that on the let that only are trend is currently doing anything with this message is a right and a push it we just push and push a new message onto it so in reality you for restored as Cervantes or or whatever to make sure that it's will to 5 regression process Annex felt and we we year right these messages back to Africa Bryant effort to every free up to 100 ms so again we have to look uh and then uh it it collects all messages that that have to be sent so restoring innocent until a time yeah yeah for sure that so that that's a good question and a new text and deadlock so if you and I would say it basically means that if you want something in but never released a lock already look something and a look something else in a companies do lawful conflict waiting for each other then basically uh the process will never continue doing any work so that this is a writ also risk refuse new text and these kind of issues are the reason why people in general say that uh that that to programming using effects is pretty hard but you have to be aware of all these risks and and and then not doing stupid stuff but it's very easy to do the stupid stuff so we had this kind of problems the and so we got the message is 1 and and we just like them out uh to the soccer which is socket booklets line and and we see from elements so this is kind of art you can already cost for the CD Achilles heel of 2 system uh maybe because we have to lock uh we have to lock the messages right all the time so if we have a lot of Toeplitz and probably the percentage of time that the whole that messages rate is will get higher and higher and maybe at some point will be so high that we won't actually be able to send out messages as fast as they come in but I don't think at the moment will probably not that of countries set limits I don't see that many people would like go back and that will look
something like this in Europe Process Manager so there's a single process with a single process ID and it's just 1 of a few tracks so there said that another thing to
think about you trends and will be which is global interpreter look and then the global interpreter lock is a sphere specific to Ruby it's uh it's kind of like a it's it's clock kind of a relic from the past which is still at the moment still in MRI version still present so uh it will be the hook remindful because cannot be executed in multiple tracks at the same time so for example if you want a few traps you would you would say uh you would store stuff and in hash then or do some calculations in different fats and actually they just running of 1 by 1 instead of instead of concurrently and the only exception to that is I go so if you a few items so quantity right to this query to this are from this then and then that ended lock actually wrong be active and this is the reason why it why isn't ready will is often useful because so especially in like a Web context for you to do network and of course most time is spent a dual called the debate database you get at the back in the meantime will be can do other stuff so in in reality uh it's still quite useful if and our there is this law present and other thing is that safety which we already discussed a little bit said just now is a risk of deadlocks you m you uh if you're not careful you can you take things at same time and or or make and you kind of them or for example so it's not really for the faint of heart to where it will be at least 2 to the judiciary you do really have to know what you're doing so the a positive side of
this is that you uses a lot of memory per connection and animal to process and you can share data easily say don't set of all this group this communication between processes you can basically just have an array uh that's stored in a central location and the whole thing would just work why you do have to make sure that you got spread safe and now i mean and it doesn't make any sense for CPU-intensive fur operations since diesel on lower on running a single that that same time anyway which is rare in in wetlands so it's usually not that much of an issue and then I get warm uh so if if a attract pressures to is a possibility that all process precious and uh basically whole gone process not decimal no Massa process making sure that they get started again and and then we get to the to the final a wave to compress the ruble will which is an event loop and the funny thing about federal they said it's not actually concurrent it's a it's a good trick about this so fine grained that that it's kind of like a magic trick it it seems to be very but actually it's only the 1 thing at same time and will will get to that in a bit the and it uses very little memory per hour per connection so it's it's a good choice for 7 jetliner General the um and defendant looks looks something like this so some uh it all started the operating system so the operating system of course knows what what kind of network connections are open and then what's going on and you can also be operating system to the basically tell you when when something happens so you that this is called mystery interest so you can for example you can telomeres kernel these inform me when this connection is ready for reading and then it can just being bacteria will be called and let you know and that's what operating system tells like this this thing you're interested in is ready and then it gets to push until an event here so this this list of things that are happening uh and you can just and you can just look through them so basically the event doing nothing more than just endlessly going over this this list of defense that's in Q and and is doing stuff at every single 1 of them I easily it has some kind of storage so suffer so in context of forget clients and 1 another in the name of the person that's and that's that's that's that's disconnected the tool to assurance free because when a message comes in you wanna be able to like nobody's person is even right right the nickname to back out there the and if n who can often also and annotations and again you can ask to kernel to to to tell you when something happens so basically this is a single process usually have a single correct and this is an this is spinning around and waiting for stuff to happen and reacts to suffering of right so something to a stream and then it just goes on to the next it of the loop and so and that's so unique quite tight so operating system integration to make it work and will be desert GenCall the fan machine that offers this integration so you out if you would actually do something production you would he something like that at least maybe 1 of them in there will be itself some point 2 I here there are thinking about doing now uh like a more maybe like an actor-based regression model so then that's of stuff like this will be shared but from now and I kind of cheated and I I made a I made of a conflict and not so nice end loop but it's at this is simple so what we're doing is we're using fiber and now and I ordered select I ordered select is a is a function that's in will be standard library and the Yukon passes a list of all of stock it's well file descriptors into it like like a soccer or something on file system you can ask ask at Beijing for me 1 1 of the steady Socrates ready for reading or writing I will get to that in a bit which
1st fibers so fiber is newer is a new Congress at a constant that was introduced in there will be 1 4 9 things and it's kind of like objects and only much more light weight so it is very small text Oecophylla at the moment for the 2 kilobytes per fiber and it it it operates like like a and you can't pass it and resume at any at any time you like so in this example and we have little fiber that's that's looking around and and it's because 500 yields and 5 and yield this that this is uh basically bosses until resume called on the fiber and whenever a resume is called then uh the yield call continues and and Farber dots whatever works so in this case the console output would be 1 2 3 4 was we just asking the to to put state spectacles of so far is kind of like elected like a go with the which have only only go work interpreter schedule start to grow it in itself and in will be fibers you have to be and you have to do this yourself so if you don't resume then this this father will just endlessly so again we have used the same example in the sense that is the server opening from James there um and then we have a list of clients and a list of messages and we don't need the new revenue that here because it's just a single practice there's no actual conversely garments is just taking in basically the and then the clients Heschel store some some metadata store a fiber for every connection so this is basically what our our our our jets a server replying so any time man uh with a new connection that's open we we start a fiber this this dishonesty you pay any it waits for for itself to even become readable right so the event loop will tell the fibers this said in our readable he can work and now the and and then you can actually do the work I get a sense of this is little with confusing Our and that emission cuts who may be explained the better I will just see a 1 x y hopefully will be of the spirit so when a fibrous uh is in readable states it again can you read some data from the soccer and push this on the list of messages and 1 is from a rival states it again it it gets the messages have to be written a from the from the list of messages some much selected client and then a store so lost my timestamp so so we noted next time around it doesn't have to send the same message is yet again and and then we get to the actually so so this is a fully functioning a friendly it it it just looks and asleep and it starts by trying to see if there are any new connections and and storm decent list of clients and then it tries to ask the operating system do you have any connections are that already for reading writing and then reach from readable connections and right from rival connections so although I will go over all 4 of these in a bit more detail now um in this case it's it's again column server build except only this time we use the non blocked version and uh the only difference is that cervical except just wait for new connections and non block immediately returned so it just tries to get get a connection if there's no such thing as a just on the use and will will and get that again the world and will raise an exception so if there's an exception here will just continue with the loop and yet we get to the next uh we just also operated system please Dallas which 1 of these uh these rewritable a readable like in relief and loop this would say uh this date you would do this in a more scalable way so this is this is kind of this is really Baumann version of 5 to do that and we have sort of descent guard again from Sheena era of uh the pushes uh message back onto the onto the messages list an arrival code also sort of saying so that's the upside of in the
event of system is that it has a very a very low over per connection and skills to huge number of apparel collections for this for these reasons and downside is that you probably already know this if you ever used gaffe it but if you get a more complex safe and system you often end of a local banks to be able to manage of free and and the whole thing can get very hot the because of things colony China and resolute stack have and finally and very importantly uh since this is a single trapped in a single process but if if if you if it stops and the whole thing is stops so for example if we go
back to this this sample if if firm and reading in this case would just you would just take a very long time for some reason like nothing will be red from any crime all and so you do at the devil
work out that that is suitable to collect to being got up and very small pieces so which
1 to use all as always so the answer is it depends and so if you were if if you if you are stuff the compression in the multi-processor approaches very good uh milk strategies like nice form of course is relatively simple and now I don't need to convert virtual call to using the fan base model and the vendor was nice if you need a lot of comparison so let's let's try another man left open senior CID hardest circuits were virtually works so our and many already checked that the example couch and and or I asked artistic injection water and you can connect to my let go by yeah by running out of money low if you check it out action beginning of the lecture before presentation peaceful because I fixed book the that everybody wants to get out the I should get a different 1st name so there's always some people in in our select the the so am currently running the event expressions so if you look at them if you look at
the will processes are running much in on my machine because he is at the left the bottom side of the terminal and this just a client which is running right side and server which is running on the left side so if we if we inspect their server I've been long the the and this is a list of all the federated from this process the so am you guys are a bit slow and at the stock Mandela Belarus said last week and a state like heck this whole thing within within 5 minutes but I am a bit this what and we could at the OK so we haven't studied in the event of version and as you can see and that's on it does this all you want thread running in this process of moments so let's let's move over to that to their feathers version sorry
guys will laughter reconnect actually once restarts
Ch the so here again on the left side this list of trades he conceded that that is just good to transform for every incoming connection and I've I've tried to measure the difference between ad performance of the event in the present version but that's that's kind of an editable and I think that's for real because I'm using my old of select instead of an actual property system so we commonly see the difference in any resource usage year unfortunately and the connected thank you with
with with again such finally will and
will start there the modes process version and this is 1 will double Brady the easiest that's why I'm doing it and doing it as lost 1 % if my laptop precious I'm like the presentation of John so cares up and but
so this is a different this is the biggest free
Creek among which shows you're a tree of of all processes and their children it so you can see here that that that that adult scientist master process and then like once that nested into that we see a bunch of offer job processes and now I also may not have right the look at it that is the
and let me just see if and how many press we have right now outsell etc. but then people are organs server at the moment I'm yet and this uh this uh this concludes our presentation it and so so the question is how did that had adapt applied as knowledge and as I I work a lot on on again for a 4 will be on rails uh which is called at signal and it's it's so basically the looks into into the web server and an effect gets a lot of information and processes that the sender sensors back to us so I basically have been debating everybody's we box for for for from 1 in the year and which forced for freedom and its well thank you the here and you might want to my tail
Demo <Programm>
Automatische Handlungsplanung
Computeranimation
Benutzerbeteiligung
Subtraktion
Bit
Datentyp
Server
Programmbibliothek
Elektronische Publikation
Biprodukt
Quick-Sort
Computeranimation
Standardabweichung
Umsetzung <Informatik>
Web Site
Freeware
Adressraum
Computeranimation
Loop
Client
Informationsmodellierung
Benutzerbeteiligung
Trennschärfe <Statistik>
Datentyp
Programmbibliothek
Coprozessor
Speicher <Informatik>
Metropolitan area network
Einfach zusammenhängender Raum
Datennetz
Ausnahmebehandlung
Paarvergleich
Elektronische Publikation
Hoax
Ereignishorizont
Menge
Chatten <Kommunikation>
Server
Socket
Projektive Ebene
Statechart
Standardabweichung
Bit
Prozess <Physik>
Betafunktion
Physikalisches System
Ein-Ausgabe
Dualität
Computeranimation
Client
Datenmanagement
Forcing
Prozess <Informatik>
Server
Entropie
Coprozessor
Computerarchitektur
Makrobefehl
Bildgebendes Verfahren
Telekommunikation
Subtraktion
Bit
Gewicht <Mathematik>
Prozess <Physik>
Momentenproblem
Versionsverwaltung
Iteration
Mathematische Logik
Socket-Schnittstelle
Code
Computeranimation
Eins
Virtuelle Maschine
Streaming <Kommunikationstechnik>
Loop
Bildschirmmaske
Client
Datenmanagement
Flächentheorie
Prozess <Informatik>
Netzbetriebssystem
Datentyp
Minimum
Gerade
Schreib-Lese-Kopf
Einfach zusammenhängender Raum
Namensraum
Sichtenkonzept
Protokoll <Datenverarbeitungssystem>
sinc-Funktion
Mailing-Liste
Vektorraum
Mehrprozessorsystem
Rechter Winkel
Mereologie
Hypermedia
Server
Wort <Informatik>
Ordnung <Mathematik>
Streuungsdiagramm
Message-Passing
Demo <Programm>
Bit
Prozess <Physik>
Booten
Adressraum
Güte der Anpassung
Gruppenoperation
Systemaufruf
Kartesische Koordinaten
Biprodukt
Teilbarkeit
Computeranimation
Informationsmodellierung
Twitter <Softwareplattform>
Flächentheorie
Festspeicher
Maskierung <Informatik>
Radikal <Mathematik>
Auswahlaxiom
Message-Passing
Distributionstheorie
Punkt
Prozess <Physik>
Momentenproblem
Versionsverwaltung
Implementierung
Schreiben <Datenverarbeitung>
Element <Mathematik>
Inzidenzalgebra
Socket-Schnittstelle
Computeranimation
Multiplikation
Client
Weg <Topologie>
Datenmanagement
Gruppe <Mathematik>
Lineare Regression
Inverser Limes
Abstand
Gerade
Widerspruchsfreiheit
Analogieschluss
Array <Informatik>
Soundverarbeitung
Verklemmung
Datenhaltung
Einfache Genauigkeit
Ruhmasse
Physikalisches System
Bitrate
Kontextbezogenes System
Quick-Sort
Dichte <Physik>
Twitter <Softwareplattform>
Forcing
Menge
Softwareschwachstelle
Rechter Winkel
Server
Socket
Message-Passing
Fehlermeldung
Lesen <Datenverarbeitung>
Aggregatzustand
Bit
Punkt
Prozess <Physik>
Freeware
Momentenproblem
Gruppenkeim
Versionsverwaltung
Gesetz <Physik>
Computeranimation
Kernel <Informatik>
Streaming <Kommunikationstechnik>
Client
Hook <Programmierung>
Dateiverwaltung
Urbild <Mathematik>
Auswahlaxiom
Regressionsanalyse
Umwandlungsenthalpie
Interpretierer
Verklemmung
Lineares Funktional
Datennetz
Datenhaltung
Abfrage
Ausnahmebehandlung
Rechnen
Kontextbezogenes System
Biprodukt
Ereignishorizont
Arithmetisches Mittel
Druckverlauf
Menge
Twitter <Softwareplattform>
Rechter Winkel
Festspeicher
URL
Message-Passing
Lesen <Datenverarbeitung>
Telekommunikation
Subtraktion
Wellenlehre
Kombinatorische Gruppentheorie
Loop
Virtuelle Maschine
Benutzerbeteiligung
Weg <Topologie>
Kugel
Fächer <Mathematik>
Netzbetriebssystem
Hash-Algorithmus
Programmbibliothek
Speicher <Informatik>
Einfach zusammenhängender Raum
sinc-Funktion
Systemintegration
Mailing-Liste
Physikalisches System
Integral
Subtraktion
Bit
Gewicht <Mathematik>
Betragsfläche
Momentenproblem
Versionsverwaltung
Zahlenbereich
Schreiben <Datenverarbeitung>
Code
Computeranimation
Loop
Metadaten
Client
Netzbetriebssystem
Gradientenverfahren
Zeitstempel
Urbild <Mathematik>
Speicher <Informatik>
Schnitt <Graphentheorie>
Metropolitan area network
Funktion <Mathematik>
Einfach zusammenhängender Raum
Interpretierer
Gebäude <Mathematik>
Systemaufruf
Mailing-Liste
Ausnahmebehandlung
Physikalisches System
p-Block
Quick-Sort
Ereignishorizont
Objekt <Kategorie>
Scheduling
Benutzerschnittstellenverwaltungssystem
Rechter Winkel
Offene Menge
Server
Message-Passing
Aggregatzustand
Wasserdampftafel
Gruppenoperation
Systemaufruf
Paarvergleich
Kombinatorische Gruppentheorie
Ereignishorizont
Computeranimation
Arithmetischer Ausdruck
Informationsmodellierung
Bildschirmmaske
Fächer <Mathematik>
Stichprobenumfang
Digitaltechnik
Injektivität
Strategisches Spiel
Quellencodierung
Lesen <Datenverarbeitung>
Metropolitan area network
Bit
Prozess <Physik>
Hecke-Operator
Momentenproblem
Versionsverwaltung
Mailing-Liste
Ereignishorizont
Computeranimation
Virtuelle Maschine
Client
Rechter Winkel
Server
Radikal <Mathematik>
Thread
Aggregatzustand
Einfach zusammenhängender Raum
Subtraktion
Reelle Zahl
Kategorie <Mathematik>
Versionsverwaltung
Mailing-Liste
Physikalisches System
Ereignishorizont
Computeranimation
ATM
Prozess <Physik>
Notebook-Computer
Versionsverwaltung
Kombinatorische Gruppentheorie
Computeranimation
Prozess <Physik>
Prozess <Informatik>
Computeranimation
Soundverarbeitung
Benutzerbeteiligung
Momentenproblem
Selbst organisierendes System
Server
Information
Kombinatorische Gruppentheorie
Steuerwerk

Metadaten

Formale Metadaten

Titel Introduction to Concurrency in Ruby
Serientitel RailsConf 2016
Teil 14
Anzahl der Teile 89
Autor Cadier, Thijs
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/31530
Herausgeber Confreaks, LLC
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract In this talk we'll learn about the options we have to let a computer running Ruby do multiple things simultaneously. We'll answer questions such as: What's the difference between how Puma and Unicorn handle serving multiple Rails HTTP requests at the same time? Why does ActionCable use Eventmachine? How do these underlying mechanism actually work if you strip away the complexity?

Ähnliche Filme

Loading...