- Mastering Concurrency in Python
- Quan Nguyen
- 280字
- 2021-06-10 19:23:54
A quick metaphor
Concurrency is a quite difficult concept to fully grasp immediately, so let's consider a quick metaphor, in order to make concurrency and its differences from parallelism easier to understand.
Although some neuroscientists might disagree, let's briefly assume that different parts of the human brain are responsible for performing separate, exclusive body part actions and activities. For example, the left hemisphere of the brain controls the right side of the body, and hence, the right hand (and vice versa); or, one part of the brain might be responsible for writing, while another solely processes speaking.
Now, let's consider the first example, specifically. If you want to move your left hand, the right side of your brain (and only the right side) has to process that command to move, which means that the left side of your brain is free to process other information. So, it is possible to move and use the left and right hands at the same time, in order to do different things. Similarly, it is possible to be writing and talking at the same time.
That is parallelism: where different processes don't interact with, and are independent of, each other. Remember that concurrency is not quite like parallelism. Even though there are instances where processes are executed together, concurrency also involves sharing the same resources. If parallelism is similar to using your left and right hands for independent tasks at the same time, concurrency can be associated with juggling, where the two hands perform different tasks simultaneously, but they also interact with the same object (in this case, the juggling balls), and some form of coordination between the two hands is therefore required.
- Java多線程編程實戰指南:設計模式篇(第2版)
- Java應用與實戰
- 算法訓練營:入門篇(全彩版)
- Flink SQL與DataStream入門、進階與實戰
- Python網絡爬蟲從入門到實踐(第2版)
- Learning Network Forensics
- 自然語言處理Python進階
- 計算機應用基礎教程(Windows 7+Office 2010)
- Regression Analysis with Python
- Troubleshooting Citrix XenApp?
- Java Web應用開發給力起飛
- Mockito Essentials
- 從零開始學Python大數據與量化交易
- Python Automation Cookbook
- Mastering Unreal Engine 4.X