读书人

多线程与步骤的调用的一个疑惑

发布时间: 2013-01-23 10:44:50 作者: rapoo

多线程与方法的调用的一个疑惑
有几十个线程调用一个方法

方法:


public void aaa( string htmlStr)
{
string newStr="";
}



由于每个线程都会调用方法,每调用一次就创建一个 newStr 内存空间

那么 如果几十个线程运行一天,这是不是会造成内存完全被占用的后果呢?


[解决办法]
不会。
string newStr是一个局部变量,在函数退出之后就没有用了,可以被gc回收掉。
[解决办法]
内存不足,GC会回收,不用担心
[解决办法]
一样会回收,gc.Colect会在一个单独的线程中运行,如果内存不足,这个线程就会启动并且高优先级,

引用:
如果人家方法会执行很久呢、回收个毛线啊

[解决办法]
一样的,newStr离开aaa方法后就没有引用:
C# code?1234public void aaa( string htmlStr) { string newStr=new string(); }

这个也是同理吗?

读书人网 >C#

热点推荐