WebFund 2014W Lecture 18: Difference between revisions
Line 20: | Line 20: | ||
* node makes use of synthetic events | * node makes use of synthetic events | ||
** generated by other code | ** generated by other code | ||
==multitasking== | |||
* node is "cooperatively multitasked" | |||
* multithreaded code is preemptively multitasked | |||
* sane multithreading involves locking | |||
** temporary exclusive ownership | |||
** mistakes lead to race conditions | |||
* node avoids race conditions while being highly concurrent | |||
** node is fast |
Revision as of 18:15, 19 March 2014
invoke versus call
- SAME THING
Reactor pattern
- direct contrast to a procedural pattern
- procedural: everything is synchronous
- each line completes before the next executes
- reactor pattern: mostly synchronous
- exception: event handlers
- dispatcher calls event handlers
- type of event-driven programming
- event dispatcher is implicit
- implicit "assembly line"
- raw data comes in, dispatcher has routine(s) that match raw data
- routine process it, leaves processed data
- processed data matches other routines
- normal events are incoming I/O events
- keypresses, mouse clicks, network traffic
- node makes use of synthetic events
- generated by other code
multitasking
- node is "cooperatively multitasked"
- multithreaded code is preemptively multitasked
- sane multithreading involves locking
- temporary exclusive ownership
- mistakes lead to race conditions
- node avoids race conditions while being highly concurrent
- node is fast