本帖最后由 黑色海 于 2013-10-8 14:54 编辑
关键字lock的使用有点疑惑,
如果共享资源是一个循环的时候,该把lock放哪儿才能让多条线程同步,并且不会出现安全问题呢?- class A
- {
- static string name;
- static int age;
- public A()
- {
- }
- //public A(string name,int age)
- //{
- // this.name = name;
- // this.age = age;
- //}
- public void Amethod()
- {
- A ss = new A();
- lock (ss)
- {
- for (; age < 1000; age++)
- {
- try { Thread.Sleep(10); }
- catch (Exception e) { }
- Console.WriteLine(age + Thread.CurrentThread.Name + name);
- }
- MessageBox.Show("循环完毕。。。");
- }
- }
- }
复制代码 我开了三条辅助线程执行这个方法,当lock在for循环外时会出现1000,1001这样的安全问题,该怎么解决???
|
|