与c+;相比,更喜欢高效的Win32内核对象+; 作为一个C++程序员,我尝试坚持标准,如果这是不可能的,我尝试使用Boost或其他便携式LIB。总之,我喜欢编写可移植代码。现在,Windows SDK为您提供了访问内核对象的权限,作为优化的一部分,这可能会导致更快的代码。我想知道为了提高效率,您喜欢使用哪些内核对象

与c+;相比,更喜欢高效的Win32内核对象+; 作为一个C++程序员,我尝试坚持标准,如果这是不可能的,我尝试使用Boost或其他便携式LIB。总之,我喜欢编写可移植代码。现在,Windows SDK为您提供了访问内核对象的权限,作为优化的一部分,这可能会导致更快的代码。我想知道为了提高效率,您喜欢使用哪些内核对象,c++,winapi,C++,Winapi,一个例子是Critical_部分,但我认为这是在Windows上使用boost::threads或c++11并发时的默认互斥选择。当然,坚持进程内并发 让我们暂时不讨论GUI编程。因此,我喜欢Qt,它已经足够好了。一般来说,内核对象的效率不会更高。它们占用更多的RAM,使用它们需要昂贵的上下文切换 关键部分是混合的,它们实际上试图保持用户模式,并且仅在绝对需要时创建内核模式信号量 你的C++标准库可能松散地包装了你的平台最有效的方法。首先进行基准测试。首先,这是“主要基于意见”,因此不适合这样做

一个例子是Critical_部分,但我认为这是在Windows上使用boost::threads或c++11并发时的默认互斥选择。当然,坚持进程内并发


让我们暂时不讨论GUI编程。因此,我喜欢Qt,它已经足够好了。

一般来说,内核对象的效率不会更高。它们占用更多的RAM,使用它们需要昂贵的上下文切换

关键部分是混合的,它们实际上试图保持用户模式,并且仅在绝对需要时创建内核模式信号量


<>你的C++标准库可能松散地包装了你的平台最有效的方法。首先进行基准测试。

首先,这是“主要基于意见”,因此不适合这样做。(VTC)第二,任何好的跨平台库(如boost)都将使用更相关的平台特定原语,无论是功能方面(但几乎所有平台都提供相同的功能)还是性能方面(如果归结起来)。所以,我认为你的问题是毫无意义的。winapi是一个可怕的烂摊子!从这个角度来看,您可能是对的,很容易误用/错误地提取抽象来高效地实现c++11线程和co。但我认为任何像boost这样有声望的框架都会做到这一点。@g-makulik如果WinAPI“只是”一团乱麻,一切都会好的。POSIX已经是一个可怕的烂摊子,但它比WinAPI理智了数千倍(免责声明:仅凭我的观点,我使用这两种技术的事实并不重要)@西亚姆同意;-)!但它是这样的:如果(符合c++11)编译器实现或(声誉良好的)框架声称拥有这些机制,你通常可以相信它。@g-makulik是的,我只是回应了你评论中粗体的部分。见鬼,这是应该引起我们注意的部分,对吗?;-)一天中的这个时候,不要把我当回事-p(当然,除非我是技术性的,我从不搞砸这个^^)