日期:2014-05-20  浏览次数:20531 次

问一个线程安全的问题。以下代码调用textLock方法时,i>5是否会引起死锁?为什么?
public   void   textLock(int   i)
{
    lock(this)
    {
        if(i> 5)
        {
            i--;
            textLock(i);  
        }
    }
}

------解决方案--------------------
什么意思?你在问什么?丝毫看不出为什么会以为有什么死锁?

我猜你认为lock(this){}就等于锁住了this内定义的或者{}中的所有局部变量,或者这些局部变量任何一个一旦修改就自动上锁,完全把lock(){}看成关系数据库了。说实在的,如果有这样的程序员是很气人的。不过学校教育很不到位,这样的想法却是很多。