为什么C++没有内建支持多线程
来源:互联网 发布:eclipse linux 编辑:程序博客网 时间:2024/04/29 13:40
C++没有包含任何对多线程应用程序的内建的支持。相反,它依赖于操作系统提供这个特性。考虑到Java和C#都提供了内建的多线程支持,大家自然会问,为什么C++没有提供,答案是因为效率、控制以及C++适用的应用程序的范围。
由于没有内建对多线程的支持,因此C++没有尝试定义一种“万能的”解决方案。相反,C++允许程序员直接使用操作系统提供的多线程特性。这种方法意味着我们的程序可以使用执行环境支持的、最高效的方法来实现多线程。由于许多的多任务环境提供了对多线程丰富的支持,因此能够访问这些支持对于创建高性能的多线程程序至关重要。
使用操作系统的函数来支持多线程使得可以全面地使用执行环境提供的控制。考虑Windows环境。它提供了多组线程相关函数来有条理地控制线程的创建和管理。例如,Windows有多种方法来控制对共享资源的访问,共享资源包括信号、互斥体、事件对象、可等待定时器以及临界区。由于操作系统能力的不同,很难将这种灵活性设计到一门语言中。因此,对于多线程语言层次的支持通常意味着仅提供特性的“最小公倍数”。通过C++,我们可以访问操作系统提供的所有特性。当编写高性能的代码时,这是非常重要的优点。
C++是为所有类型的程序设计类型设计的,从嵌入式系统(在执行环境中没有操作系统)到高度分布的、基于GUI的终端用户应用程序以及介于二者之间的一切程序。因此,C++不能够对它的执行环境加入明显的限制。内建的对多线程的支持将会从根本上将C++限制在那些支持多线程的环境中,从而阻止了在不使用线程的环境中开发软件时使用C++。
最后,没有内建的对多线程的支持是C++的一个主要优点,因为这样可以使用对目标执行环境最高效的方式编写程序。C++的功能无处不在。多线程的情况很明显是一种“简单就好”的情况。
- 为什么C++没有内建支持多线程
- [C++] 编译器支持的内建函数
- 为什么C 没有嵌套函数?
- Java为什么没有C/C++运行快
- 为什么当前大多数应用程序是多线程的,为什么要使用支持多线程的库
- C#: 实现支持断点续传多线程下载的
- Windows C 多线程编程的库支持
- C#: 实现支持断点续传多线程下载
- [C#]Microsoft Visual Studio 2005新建项目为什么没有解决方案?
- 为什么c/c++没有垃圾收集器(garbage collector)?
- 在C语言中除法运算为什么没有小数部分?
- JAVA为什么没有C/C++运行速度快
- 为什么说 Objective-C 没有私有方法和私有变量
- 两张图说明C#Winform为什么没有[design]界面
- C语言为什么不支持重载,而C++支持
- 为什么c++支持重载而C语言不支持重载
- cd命令为什么时候内建命令
- 谈谈误解------为什么select支持的fd数量有限制,而poll/epoll等支持的fd数量没有限制?
- 我想结婚!
- 文明攻略
- BMP格式详解,不懂讲到你精!!!!!!!!
- 腾讯QQ珊瑚虫外挂原理分析
- 去了珠海
- 为什么C++没有内建支持多线程
- 基础DOS命令学习
- Tapestry简介
- google的路
- 人生是一种积累
- Oracle9i PL/SQL编程的经验小结
- 历年考研英语真题 mp3 下载
- 4.9
- 开博了 开博了 俺也开博了