zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《C#多线程编程实战(原书第2版)》——第1章 线 程 基 础 1.1 简介

c#多线程编程 实战 简介 1.1 原书
2023-09-11 14:16:11 时间

本节书摘来自华章出版社《C#多线程编程实战(原书第2版)》一书中的第1章,第1.1节,作者(美)易格恩·阿格佛温(Eugene Agafonov),黄博文 黄辉兰 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

线 程 基 础

本章将涵盖C#中使用线程的基本操作。

你将学到以下内容:

使用C#创建线程

暂停线程

线程等待

终止线程

检测线程状态

线程优先级

前台线程和后台线程

向线程传参

使用C#中的lock关键字

使用Monitor类锁定资源

处理异常

1.1 简介

过去普通计算机只有一个计算单元,不能同时执行多个计算任务。然而操作系统却已经可以同时运行多个应用程序,即实现了多任务的概念。为了防止一个应用程序控制CPU而导致其他应用程序和操作系统本身永远被挂起这一可能情况,操作系统不得不使用某种方式将物理计算单元分割为一些虚拟的进程,并给予每个执行程序一定量的计算能力。此外,操作系统必须始终能够优先访问CPU,并能调整不同程序访问CPU的优先级。线程正是这一概念的实现。可以认为线程是一个虚拟进程,用于独立运行一个特定的程序。

请记住线程会消耗大量的操作系统资源。多个线程共享一个物理处理器将导致操作系统忙于管理这些线程,而无法运行程序。

因此,虽然有可能提高计算机的处理器能力,使得计算机每秒钟能执行越来越多的命令,但是使用线程通常是一个操作系统任务,试图在单核CPU上并行执行计算任务是没有意义的,因为这比顺序运行会花费更多的时间。然而,当处理器拥有多核时,过去的应用程序则不能使用这个优势,因为它们只使用了一个处理核心。

为了有效地利用现代处理器的计算能力,使用某种方式让程序能使用不止一个处理核心是非常重要的。这需要组织多个线程间的通信和相互同步。

本章中的内容将关注于使用C#语言执行一些非常基本的线程操作。我们将介绍线程的生命周期,其包括创建线程、挂起线程、线程等待,以及中止线程。然后我们会介绍一些基本的线程同步技术。


性能追击:万字长文30+图揭秘8大主流服务器程序线程模型展示 本文我们来探索一下主流的各种应用服务器的网络处理模型,看看大家都是怎么设计网络程序的。在本文中,我会从Node.js、Apache Server、Nginx、Netty、Redis、Tomcat、MySQL、Zuul等常用的服务器程序,给大家逐一分析,分析各种服务器程序的性能,心中有数,才能手中有术,从此性能是熟客。
2w字 + 41张图带你参透并发编程!(二) 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。
2w字 + 41张图带你参透并发编程!(四) 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。
2w字 + 41张图带你参透并发编程!(三) 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。
2w字 + 40张图带你参透并发编程!(一) 在计算机最早期的时候,没有操作系统,执行程序只需要一种方式,那就是从头到尾依次执行。任何资源都会为这个程序服务,在计算机使用某些资源时,其他资源就会空闲,就会存在 浪费资源 的情况。
Java并发编程程系列之二:多线程实现的三种方式 多线程处理是Java中处理并发任务非常重要的手段。本文主要介绍了多线程实现的几种方式以及每种实现方式优缺点,以供大家在实际开发中可以根据实际的应用场景进行自由选择。 继承Thread 实现Runnable接口 实现Callable接口
带你读《量子编程基础》之三:量子程序的语法与语义 本书讨论了如何扩展当前计算机的新程序设计方法和技术,以利用量子计算机的独特能力。相比于现有计算机系统,量子计算机在处理速度上具有显著优势。世界各地的政府和企业都投入了大量资金,希望建造实用的量子计算机。本书结合作者在量子计算领域多年的研究经验,并辅以大量的例子和插图,介绍了量子编程语言及其所需的重要工具和技术,对于学者、研究人员和开发人员来说都是非常宝贵的参考资料。
带你读《Python编程从0到1》之一:基 础 本书在示例中坚持给出完整可执行的代码或交互界面步骤,然而本书绝非“手把手”的教程。书中有些内容对于学习者来说是具有相当难度的,需要读者反复阅读思考并且动手实践才能够理解或掌握。这种难度是具有现实意义的:较难内容大多数来自于工程实践、后续学习,甚至是求职面试中的重点。读者应当认识到对这些问题的思考能力和思考过程的重要性。