ima*_*mak 3 .net c# multithreading
当多个线程运行相同的代码时,CLR如何设法让它们相互超越.AppDomain管理这些线程并定义不同线程之间的边界,即使它们可能在相同的代码(可能还有数据)上运行吗?如果是这样的话?
TIA
简单; 对于方法变量(不包括捕获的变量,迭代器块等),变量在堆栈上.每个线程都有不同的堆栈.这与单个线程上的递归方法没有什么不同 - 方法变量是每个调用独立且独立的.
对于堆上的对象...... 它不会!! .没有界限; 没有保护.如果您没有正确同步等,则会损坏您的数据.
简而言之,这是你的工作.
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |