在.Net Framework
创建过程中,Start()
的实际调用System.Threading.Thread
导致调用操作系统,基于 Windows的系统,内核为调用者进程提供全新的线程。
.Net Core
中的情况会发生变化吗?它在Linux或Mac OS上是否做同样的事情-调用OS内核以创建全新的线程,而System.Threading.Thread
类的实例包装实际的OS线程?
如果不是,那么我如何描述System.Threading.Thread
跨平台世界中的.NET Core
是什么?
答案 0 :(得分:1)
在两种情况下,CLR都在使用OS线程。
要启动新线程,CLR调用CreateThread
。在Windows上,这直接映射到Win32 API。在Unix上,它经过an indirection,最终调用pthread_create