- Multithreading in C# 5.0 Cookbook
- Eugene Agafonov
- 350字
- 2021-07-21 18:09:58
Introduction
At some point of time in the past, the common computer had only one computing unit and could not execute several computing tasks simultaneously. However, operating systems could already work with multiple programs simultaneously, implementing the concept of multitasking. To prevent the possibility of one program taking control of the CPU, forever causing other applications and the operating system itself to hang, the operating systems had to split a physical computing unit across a few virtualized processors in some way and give a certain amount of computing power to each executing program. Moreover, an operating system must always have priority access to the CPU and should be able to prioritize CPU access to different programs. A thread is an implementation of this concept. It could be considered a virtual processor given to the one specific program that runs it independently.
Therefore, while it was possible to enhance computer processors, making them execute more and more commands per second, working with threads was usually an operating system task. There was no sense in trying to compute some tasks in parallel on a single-core CPU because it would take more time than running those computations sequentially. However, when processors started to have more computing cores, older programs could not take advantage of this because they just used one processor core.
To use a modern processor's computing power effectively, it is very important to be able to compose a program in a way that it can use more than one computing core, which leads to organizing it as several threads communicating and synchronizing with each other.
The recipes in this chapter will focus on performing some very basic operations with threads in the C# language. We will cover a thread's lifecycle, which includes creating, suspending, making a thread wait, and aborting a thread, and then we will go through basic synchronization techniques.
- Mastering Concurrency Programming with Java 8
- 前端跨界開發指南:JavaScript工具庫原理解析與實戰
- Linux C/C++服務器開發實踐
- Mastering C# Concurrency
- Python神經網絡項目實戰
- Oracle BAM 11gR1 Handbook
- JS全書:JavaScript Web前端開發指南
- 大數據分析與應用實戰:統計機器學習之數據導向編程
- Arduino家居安全系統構建實戰
- 硅谷Python工程師面試指南:數據結構、算法與系統設計
- INSTANT Silverlight 5 Animation
- JavaScript應用開發實踐指南
- Python Data Science Cookbook
- Deep Learning with R Cookbook
- Scala編程實戰