Which of the following are efforts to towards developing scalable, efficient tools that address the demands of concurrent programming?
1) Parallel computing
2) Distributed computing
3) Thread-based programming
4) Asynchronous programming