POSIX线程与Win32线程

Meh*_*dad 10 multithreading posix pthreads

我只是把我的脚趾浸入 POSIX池中,并第一次尝试了POSIX线程.到目前为止,我一直认为POSIX线程和Win32线程之间存在很大的架构差异,但是从我尝试过的(实际上很少),我没有看到任何区别.

我仍然很好奇 - POSIX线程和Win32线程之间有什么区别(如果有的话)?它们在根本上是不同的,还是只是有微小的差异?

gd1*_*gd1 12

在Windows NT家族内核和许多Unix内核中,如何管理和调度线程之间存在巨大差异,但这不是问题.

如果您只是谈论接口(Win32线程和POSIX线程公开的服务),通过一些工作,您几乎可以将任何POSIX线程功能映射到Win32等效的~1:1.它已经完成(参见pthreads-win32).

我可能注意到的一个很大的区别是,在Win32下你使用实际的系统调用来处理线程,而POSIX线程的调用是(pthreads)的一部分- 在许多Unix系统下 - 调用Unix的一些非常低级的系统调用内核(在Linux下有clone()).

只是为了证明你,除非你非常深入,pthreads没有什么特别之处,你可以下载pthreads-win32,它暴露了完全相同的pthreads接口,并且任何函数都映射在Win32线程API上.它有效.