2026/4/15 19:19:16
网站建设
项目流程
网站建站建设公司,网络营销应用方式,网站开发使用什么语言,网站平台管理多线程编程:语言与商业产品全解析 1. 多线程库设计要点 在创建多线程安全(MT-safe)和多线程高效(MT-hot)的库时,存在许多权衡。没有一种锁定设计适用于所有程序。不同线程如何交互、如何创建和退出,都是有待解决的问题。不过,有一个重要的设计原则是保持简单性。 2.…多线程编程:语言与商业产品全解析1. 多线程库设计要点在创建多线程安全(MT-safe)和多线程高效(MT-hot)的库时,存在许多权衡。没有一种锁定设计适用于所有程序。不同线程如何交互、如何创建和退出,都是有待解决的问题。不过,有一个重要的设计原则是保持简单性。2. 各编程语言中的线程使用2.1 C 语言所有库的基本接口都是 ANSI C。每个函数都提供了函数原型,常量和数据类型也都在 C 语言中定义。2.2 C++ 语言在多线程方面,C++ 带来了一些新特性,不过影响有好有坏:-编译器问题:一些 C++ 编译器会对全局数据做出假设,并且以非线程安全的方式使用它。这类编译器通常是较旧的版本,例如 Sun 1992 年版的 C++,不能用于编译多线程(MT)程序。而较新的版本,如 Sun 1994 年及以后的版本,可以生成线程安全的代码。注意,不能将用旧编译器编译的模块与新编译器编译的模块混合使用,建议咨询编译器供应商。-库的线程安全性:一些公共和商业库不是线程安全的,而有些是。如果库没有明确列为线程安全的,就应假定它不是。-栈分配类及其析构函数:正常退出函数时,析构函数会运行;线程退出时,析构函数也应运行,但这取决于编译器。在 OS/2、Win32 或 POSIX 中调用线程退出函数时,析构函数应该运行;取消线程时,析构函数也应运行。不过在 Win32 和 OS/2 中,终止线程时析构函数不会运行。-C