C#多线程学习笔记(二)

简介: a.其它线程都是依附于Main()函数所在的线程的   Main()函数是C#程序的入口,起始线程可以称之为主线程   如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。   而所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行。
a.其它线程都是依附于Main()函数所在的线程的
   Main()函数是C#程序的入口,起始线程可以称之为主线程
   如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。
   而所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行。

b.可能通过Thread.ThreadState来访问线程当前的状态
Aborted:线程已停止 AbortRequested:线程的Thread.Abort()方法已被调用,但是线程还未停止 Background:线程在后台执行,与属性Thread.IsBackground有关 Running:线程正在正常运行 Stopped:线程已经被停止 StopRequested:线程正在被要求停止 Suspended:线程已经被挂起(此状态下,可以通过调用Resume()方法重新运行) SuspendRequested:线程正在要求被挂起,但是未来得及响应 Unstarted:未调用Thread.Start()开始线程的运行 WaitSleepJoin:线程因为调用了Wait(),Sleep()或Join()等方法处于封锁状态

c.后台线程与前台线程的区别在于
    后台线程那不妨碍程序的终止。一旦一个进程所有的前台线程都终止后,CLR(通用语言运行环境)将通过调用任意一个存活中的后台进程的Abort()方法来彻底终止进程。

d.设置Thread的优先级
当线程之间争夺CPU时间时,CPU按照是线程的优先级给予服务的。在C#应用程序中,用户可以设定5个不同的优先级,由高到低分别是Highest,AboveNormal,Normal,BelowNormal,Lowest,
在创建线程时如果不指定优先级,那么系统默认为ThreadPriority.Normal。给一个线程指定优先级
我们可以使用如下代码来设置线程的优先级

img_a6339ee3e57d1d52bc7d02b338e15a60.gif    // 设定优先级为最低
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
  myThread.Priority = ThreadPriority.Lowest; 
目录
相关文章
|
3月前
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
154 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
|
5月前
|
数据采集 XML JavaScript
C# 中 ScrapySharp 的多线程下载策略
C# 中 ScrapySharp 的多线程下载策略
|
3月前
FFmpeg学习笔记(二):多线程rtsp推流和ffplay拉流操作,并储存为多路avi格式的视频
这篇博客主要介绍了如何使用FFmpeg进行多线程RTSP推流和ffplay拉流操作,以及如何将视频流保存为多路AVI格式的视频文件。
486 0
|
3月前
|
C#
C#中的数组型参数学习笔记
C#中的数组型参数学习笔记
33 0
|
5月前
|
调度
多线程学习笔记
这篇文章是多线程学习笔记,涵盖了线程与进程的概念、多线程实现方式、线程状态、线程同步与不安全示例、死锁问题以及生产者与消费者问题等多线程编程的关键知识点。
多线程学习笔记
|
4月前
|
安全 数据库连接 API
C#一分钟浅谈:多线程编程入门
在现代软件开发中,多线程编程对于提升程序响应性和执行效率至关重要。本文从基础概念入手,详细探讨了C#中的多线程技术,包括线程创建、管理及常见问题的解决策略,如线程安全、死锁和资源泄露等,并通过具体示例帮助读者理解和应用这些技巧,适合初学者快速掌握C#多线程编程。
98 0
|
5月前
|
安全 C# 开发者
【C# 多线程编程陷阱揭秘】:小心!那些让你的程序瞬间崩溃的多线程数据同步异常问题,看完这篇你就能轻松应对!
【8月更文挑战第18天】多线程编程对现代软件开发至关重要,特别是在追求高性能和响应性方面。然而,它也带来了数据同步异常等挑战。本文通过一个简单的计数器示例展示了当多个线程无序地访问共享资源时可能出现的问题,并介绍了如何使用 `lock` 语句来确保线程安全。此外,还提到了其他同步工具如 `Monitor` 和 `Semaphore`,帮助开发者实现更高效的数据同步策略,以达到既保证数据一致性又维持良好性能的目标。
71 0
|
7月前
|
并行计算 算法 C#
C# Mandelbrot和Julia分形图像生成程序更新到2010-9-14版 支持多线程计算 多核处理器
此文档是一个关于分形图像生成器的介绍,作者分享了个人开发的M-J算法集成及色彩创新,包括源代码和历史版本。作者欢迎有兴趣的读者留言交流,并提供了邮箱(delacroix_xu@sina.com)以分享资源。文中还展示了程序的发展历程,如增加了真彩色效果、圈选放大、历史记录等功能,并分享了几幅精美的分形图像。此外,还提到了程序的新特性,如导入ini文件批量输出图像和更新一批图片的功能。文档末尾附有多张程序生成的高分辨率分形图像示例。
|
7月前
|
大数据 C#
C#实现多线程的几种方式
C#实现多线程的几种方式