多线程时要考虑以下准则
来源:互联网 发布:大连 大数据 招聘 编辑:程序博客网 时间:2024/06/06 15:01
使用多线程时要考虑以下准则:
-
不要使用 Thread.Abort 终止其他线程。对另一个线程调用 Abort 无异于引发该线程的异常,也不知道该线程已处理到哪个位置。
-
不要使用 Thread.Suspend 和 Thread.Resume 来同步多个线程的活动。不要使用 Mutex、ManualResetEvent、AutoResetEvent 和 Monitor。
-
不要从主程序中控制辅助线程的执行(如使用事件),而应在设计程序时让辅助线程负责等待任务,执行任务,并在完成时通知程序的其他部分。如果辅助线程不阻止,请考虑使用线程池线程。Monitor.PulseAll 在辅助线程阻止的情况下会很有用。
-
一定要确保已进入监视器的线程始终离开该监视器,即使当线程在监视器中时发生异常也是如此。C# 的 lock 语句和 Visual Basic 的 SyncLock 语句可自动提供此行为,它们用一个 finally 块来确保调用 Monitor.Exit。如果无法确保调用 Exit,请考虑将您的设计更改为使用 Mutex。Mutex 在当前拥有它的线程终止后会自动释放。
-
一定要针对那些需要不同资源的任务使用多线程,避免向单个资源指定多个线程。例如,任何涉及 I/O 的任务都会从其拥有其自己的线程这一点得到好处,因为此线程在 I/O 操作期间将阻止,从而允许其他线程执行。用户输入是另一种可从专用线程获益的资源。在单处理器计算机上,涉及大量计算的任务可与用户输入和涉及 I/O 的任务并存,但多个计算量大的任务将相互竞争。
-
对于简单的状态更改,请考虑使用 Interlocked 类的方法,而不是 lock 语句(在 Visual Basic 中为 SyncLock)。lock 语句是一个优秀的通用工具,但是 Interlocked 类为必须是原子性的更新提供了更好的性能。如果没有争夺,它会在内部执行一个锁定前缀。
- 多线程时要考虑以下准则
- 开发自定义控件时主要考虑以下问题:
- java 设计类时考虑多线程安全
- 在应用系统的设计中,要着重考虑以下几点:
- 大规模数据运行时,可以考虑使用多线程处理!
- linux多线程编程的七条准则
- linux多线程编程的七条准则
- linux多线程编程的七条准则
- linux多线程编程的七条准则
- 以下情况考虑将类型声明为值类型
- WEB的安全性测试主要从以下方面考虑:
- 准则
- 需求分析时要多多考虑“默认值”
- 选择创业项目时要考虑的问题
- 八会穴时要考虑迁移到云
- Singleton 考虑内存的释放和多线程
- 考虑多线程的单例模式
- 准则6:遵守多线程编程的常识(上)
- 数学之美--防伪系统(1)
- Google Maps API 2 中文文档
- style.backgroundImage will fire onpropertychange twice
- 雅虎公司C#笔试题
- Log4J学习笔记(一)
- 多线程时要考虑以下准则
- CSDN的博客好慢
- 某公司招收.net高级程序员的试卷
- 密码学的发展方向与最新进展
- 使用Apache Jmeter测试JSP应用程序性能
- .Net 面试题
- 表单验证
- C#中使用存储过程,C#分页存储过程
- 二维数组和指针