官术网_书友最值得收藏!

Chapter 2. Orchestrating Concurrency and Parallelism

Let's now examine how concurrent and parallel programming are supported in Clojure. The term concurrent programming refers to managing more than one task at the same time. Parallel programming or parallelism, on the other hand, deals with executing multiple tasks at the same time. The distinction between these two terms is that concurrency is about how we structure and synchronize multiple tasks, and parallelism is more about running multiple tasks in parallel over multiple cores. The main advantages of using concurrency and parallelism can be elaborated as follows:

  • Concurrent programs can perform multiple tasks simultaneously. For example, a desktop application can have a single task for handling user interaction and another task for handling I/O and network communication. A single processor can be shared among several tasks. Processor utilization is thus more effective in concurrent programs.
  • Parallel programs take advantage of having multiple processor cores. This means that such programs can be made to run faster by executing them on a system with more processor cores. Also, tasks that are computationally expensive can be parallelized to complete in a lesser amount of time.

In this chapter, we will:

  • Explore how we can create and synchronize tasks that run concurrently
  • See how to deal with a shared state between concurrent tasks
  • Examine how computations can be parallelized and how we can control the amount of parallelism used to perform these computations
主站蜘蛛池模板: 普安县| 新龙县| 义马市| 元江| 临澧县| 综艺| 若尔盖县| 霍州市| 兴国县| 监利县| 渝中区| 宁南县| 上杭县| 都江堰市| 绥江县| 松桃| 汉沽区| 报价| 榆中县| 甘孜县| 宣恩县| 汉沽区| 浦县| 连州市| 安义县| 抚松县| 鄯善县| 克拉玛依市| 镇赉县| 乡城县| 闻喜县| 万州区| 万荣县| 宁德市| 长子县| 六盘水市| 建德市| 中西区| 崇仁县| 汉沽区| 连州市|