直接在IDE中测试一下就成了至于你后面的问题,建议google 信号量  或者多线程的回调函数

解决方案 »

  1.   

    lock是对多个线程访问共享资源做控制的。
      

  2.   

    你误解了lock的意思。lock(A)的意思是说,有一个锁,它跟变量A(所引用的对象)关联。根本不是什么“锁着A”的意思。因此一个 lock(A)就会跟另外一个lock(A)互斥,就会阻塞线程执行。直到再也没有锁跟A关联了(另外一个与A关联的锁释放了),才会获得锁,从而继续执行。因此lock(A)其实也不过是一个简单的“同步信号”概念,根本谈不上“锁变量”那么复杂的概念。
      

  3.   

    对于同一个线程,lock(A)是完全失效的,执行多少遍、不管如何嵌套都会失效。只有跨线程时才有意义!
      

  4.   

    “我的期望是在S里边锁定一个变量”我觉得你应该仔细研究一下你这句话。锁根本不是干这个的,锁不是给你用来控制i能不能被修改的。你随便修改变量i,用lock根本保护不了。
      

  5.   

    你误解了lock的意思。lock(A)的意思是说,有一个锁,它跟变量A(所引用的对象)关联。根本不是什么“锁着A”的意思。因此一个 lock(A)就会跟另外一个lock(A)互斥,就会阻塞线程执行。直到再也没有锁跟A关联了(另外一个与A关联的锁释放了),才会获得锁,从而继续执行。因此lock(A)其实也不过是一个简单的“同步信号”概念,根本谈不上“锁变量”那么复杂的概念。你说的这个我都理解的,只是通俗一点的说成了锁。7楼给了我很大的提醒,走进了胡同里去了。谢谢!非常感谢!