我在哪里可以找到有关创建新线程时发生的背景信息的信息?当我写下以下内容时:
我想知道实际发生了什么事情......你能帮我转接一下吗?
Thread t = new Thread ()
....
t.start()....
我想知道实际发生了什么事情......你能帮我转接一下吗?
Thread t = new Thread ()
....
t.start()....
虽然托管线程的行为方式不一定与本机线程相同,但请查看涵盖基本原理的本文:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681917(v=vs.85).aspx
具体来说,当您创建一个线程时,代码将在以下上下文中运行:
线程是进程内可被调度执行的实体。进程的所有线程共享其虚拟地址空间和系统资源。此外,每个线程维护异常处理程序、调度优先级、线程本地存储、唯一的线程标识符以及一组结构,系统将使用这些结构保存线程上下文直到它被调度。线程上下文包括线程的一组机器寄存器、内核堆栈、线程环境块以及线程进程地址空间中的用户堆栈。线程还可以拥有自己的安全上下文,可用于模拟客户端。
这里作为一个答案,Jeffrey Richter的CLR via C# 可能会教你一些关于CLR内部的你不知道的东西。
还有Joe Duffy的Concurrent Programming on Windows
† 从统计意义上来说