我想知道调用构造函数是否会阻止程序中的其他线程?我查看了并发报告,发现一个长线程阻塞了其他线程,并且它的堆栈中始终有一个构造函数。
编辑:
经过调查,我发现锁定是由于另一个请求(我运行了ASP.NET应用程序)引起的DB调用而发生的。
对于这个问题,正如我在article中发现的那样,内存分配不会阻塞线程,除非Servy指出了,除非调用了GC。
最佳答案
不,不是的。这个特定的构造函数可能会执行导致其他线程阻塞的操作,但是调用构造函数的行为本身并不会阻塞所有其他线程。
您可能会注意到的一件事是,垃圾收集器在运行时确实需要阻止所有线程的执行。如果您有一个线程在分配大量对象,以致导致GC收集超出期望的程度,则您可能在明显的时间内阻塞了线程。
关于c# - 新的运算符或构造函数是否会阻止.NET中的其他线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173351/