Why #concurrency is hard ?
▻https://hackernoon.com/why-concurrency-is-hard-a45295e96114?source=rss----3a8144eabfe3---4
Why Concurrency is hard ?A few weeks back, I was invited to talk about concurrency at a local university. This write up summarizes what I presented there.We all learn about parallelism/concurrency during the university or in other ways. Any one who is learning how to program will inevitably read/learn about fundamental concepts such as,Threads, Thread Groups, Thread StatesRace Conditions, Mutual Exclusion, Dead Locks, StarvationLocks, Barriers, Thread Locals, Atomic variablesThis list goes on …Even though concurrency is a mainstream still we find it difficult to deal with. Why?Some observations:There is a significant gap between introductory material on concurrency and real-world concurrent/distributed applications.Most of us end up not following the best practices.Applying text book, (...)
#software-architecture #java #programming #software-development
]]>A simple introduction to #python’s #asyncio
▻https://hackernoon.com/a-simple-introduction-to-pythons-asyncio-595d9c9ecf8c?source=rss----3a81
This is a no-buzzword first principles introduction to the asyncio library in Python.If you’ve come here, it is likely that you have heard of words such as asynchronous, #concurrency and parallelism. Before we start off with asyncio, lets quickly get some basic things about these words right (via examples), so that we have a solid foundation to build this upon.Concurrency is like having two threads running on a single core CPU. Instructions from each thread could be interleaved, but at any given time, only one of the two threads is actively making progress.Parallelism is like having two threads running simultaneously on different cores of a multi-core CPU.It is important to note that parallelism implies concurrency but not the other way round.Asynchronous is a higher level #programming (...)
]]>Build a #mapreduce flow in #elixir
▻https://hackernoon.com/build-a-mapreduce-flow-in-elixir-f97c317e457e?source=rss----3a8144eabfe3
Giving the Elephant Some ElixirMapReduce is a common Big Data pattern for analyzing a data set concurrently. This tutorial will introduce you to Elixir and the principals behind Hadoop. We will be building the equivalent of Hello World in MapReduce which is a word count program. Map and Reduce are also common higher order functions in the world of functional programming. Map is a function that takes a list and an anonymous function or lambda as arguments, applies the function to each element in the list, and returns a new list with the output of the lambda on each element. Reduce is a similar function in that it takes the same arguments with one additional argument in Elixir, an accumulator, but returns an accumulated value instead of a list. Elixir is a great language to learn (...)
]]>Timing and Synchronization in JavaScript - Opera Developer Community
►http://dev.opera.com/articles/view/timing-and-synchronization-in-javascript
Timing issues are the source of some of the most devious bugs in JavaScript applications. Problems that never show up during development might surface when the application is used by an end-user on a slow computer or with low bandwidth. Such issues may also be intermittent and difficult to reproduce.
#article #browser #browsers #javascript #js #web #concurrency #event #synchronization #time #debugging #development #dev #tips
]]>