最新评论
Re:线程、同步与锁——Mutex想说爱你不容易 知生知死 2012-04-09 17:02
在多进程资源控制的场景下, Mutex是不二的选择.
Re:线程、同步与锁——Mutex想说爱你不容易 深邃的狮子座 2012-04-06 18:09
看了评论才知道真正的Mutex。
Re:做软件的都是民工! 1237321 2009-12-24 11:01
盲目悲观
Re:.net高级工程师、产品经理——汽车之家(中国最大的.net平台网站之一) 飞林沙 2009-10-10 02:00
老大好文采......
Re:.net高级工程师、产品经理——汽车之家(中国最大的.net平台网站之一) Keep Walking 2009-09-25 19:47
如果说pv1000w都是动态的,那是很了不起
Re:线程,同步与锁————Lock你到底锁住了谁 搜索 2009-08-12 18:13
楼主 能解释一下过程吗
re: 做软件的都是民工! jiang啊啊啊啊啊啊啊啊啊啊啊啊啊啊 2009-01-05 13:43
这公司的老板该杀了
re: 线程、同步与锁——Mutex想说爱你不容易 AA22s 2008-12-31 16:01
lz对Mutex也不是太熟悉阿。
re: 线程、同步与锁——Mutex想说爱你不容易 想你因为喝酒 2008-09-22 16:10
在Thread2中的WaitOne()方法报错的原因是CLR对字符串的暂留,导致两个"test"指向同一个对象,结果前一线程没执行完,后一线程就对同一"test"对象锁定,当然会报错。这也是为什么你用mutex会经常死锁的原因!
re: 线程,同步与锁————Lock你到底锁住了谁 JerryZeng 2008-09-02 13:46
public void Thread2()
{
lock (this)
{
Thread.Sleep(500);
this.i = 1;
Console.WriteLine("Can't change the value in locking");
Console.WriteLine(this.i);//display 1
}
}
楼主,这一段的Can't change the value in locking意思是说上一句的this.i=1无效吗?(这一句更改是有效的)
{
lock (this)
{
Thread.Sleep(500);
this.i = 1;
Console.WriteLine("Can't change the value in locking");
Console.WriteLine(this.i);//display 1
}
}
楼主,这一段的Can't change the value in locking意思是说上一句的this.i=1无效吗?(这一句更改是有效的)
re: 读GI源码、学JS编程——Javascript动态加载技术。 簡簡單單.. 2008-07-13 10:26
Mark
re: 线程,同步与锁————Lock你到底锁住了谁 lzpwcysbx 2008-07-02 14:24
仔细测试了楼主的代码,弄清楚了
re: 线程,同步与锁————Lock你到底锁住了谁 INRG 2008-06-16 17:53
哈哈,我新手,我也凑凑热闹:
2个线程,给它们一把一样的锁( this,假设是锁名,可以换成 "1" "2" Object啊,等 ),但钥匙只有一把,必须等到线程A开了这把锁之后,把钥匙交到线程B后再来开这把锁。
ThreadA: lock(this){code} -> ThreadB: lock( this ){code}
如果是两把不一样的锁,则两个线程可以同时去开这把锁。
ThreadA: lock("1"){code}
ThreadB: lock("2"){code}
不知道理解错没 :(
2个线程,给它们一把一样的锁( this,假设是锁名,可以换成 "1" "2" Object啊,等 ),但钥匙只有一把,必须等到线程A开了这把锁之后,把钥匙交到线程B后再来开这把锁。
ThreadA: lock(this){code} -> ThreadB: lock( this ){code}
如果是两把不一样的锁,则两个线程可以同时去开这把锁。
ThreadA: lock("1"){code}
ThreadB: lock("2"){code}
不知道理解错没 :(
re: 很有意思的HTML 4.0的BUG City22 2008-05-22 09:45
赫赫,谢谢这片文章,的确很有意思,这个问题是我在IE7下碰到的,不仅仅是IE6
re: 很有意思的HTML 4.0的BUG 杨正祎(阿一) 2008-05-21 19:32
re: 读GI源码、学JS编程——Javascript动态加载技术。 我就是aMao 2008-03-11 13:30
XMLHttpRequest
这个可以进行异步提交执行,
而你所选的代替的方法,只能在onload的时候执行,需要刷新页面.
咤一看,好象还真的可以,我以为找到可以异步执行跨站点登陆了呢,
我没有测试,不能确定在一般方法里可以不可以用你的思路.
function btnclick(uri)
{
var script=document.createElement("script");
script.type='text/javascript';
script.language='javascript';
script.src=uri;
document.getElementsByTagName("head")[0].appendChild(script);
}
//欢迎交流 68681395
这个可以进行异步提交执行,
而你所选的代替的方法,只能在onload的时候执行,需要刷新页面.
咤一看,好象还真的可以,我以为找到可以异步执行跨站点登陆了呢,
我没有测试,不能确定在一般方法里可以不可以用你的思路.
function btnclick(uri)
{
var script=document.createElement("script");
script.type='text/javascript';
script.language='javascript';
script.src=uri;
document.getElementsByTagName("head")[0].appendChild(script);
}
//欢迎交流 68681395
re: 线程,同步与锁————Lock你到底锁住了谁 路过学习 2008-02-23 15:16
lock(this)
lock(i)
是不一样的
是lock粒度的问题
我觉得粒度越小越好
lock (this)
14 {
15 Console.WriteLine(this.i);
16 Thread.Sleep(1000);
17 Console.WriteLine(this.i);
18 }
我的理解当线程进入该临界区时,this整个被锁住,
lock(i)
{}
只是i被锁住
但我不知道经编译后的il是否在lock (this)做了一些特殊处理
lock(i)
是不一样的
是lock粒度的问题
我觉得粒度越小越好
lock (this)
14 {
15 Console.WriteLine(this.i);
16 Thread.Sleep(1000);
17 Console.WriteLine(this.i);
18 }
我的理解当线程进入该临界区时,this整个被锁住,
lock(i)
{}
只是i被锁住
但我不知道经编译后的il是否在lock (this)做了一些特殊处理
re: 线程、同步与锁——EventWaitHandle实战数据缓存 orichisonic 2007-12-29 12:38
正在找winform动态加载数据的功能,正好看到你的blog,有借鉴价值
re: 线程,同步与锁————Lock你到底锁住了谁 無尽海 2007-12-23 01:54
呵呵不认真看这篇文章还以为作者乱扯呢,感觉这篇文章是容易让人误解
先是说lock锁住的是代码段
后面解释lock的原理表明,lock通过对象的一个索引实现互斥,这不锁的是对象
初看有点矛盾^_^
说下我理解的,lock(this)是给对象上了锁,但是不是把整个对象的属性和方法锁住了,只是让lock(this)这个代码不能在此执行
只有第一个lock(this)中的代码执行完以后才能执行第二个lock(this)
不知道对没呵呵
楼上朋友的代码我认真测试了
没感觉说明什么问题,作者的原理解释运行结果没问题
先是说lock锁住的是代码段
后面解释lock的原理表明,lock通过对象的一个索引实现互斥,这不锁的是对象
初看有点矛盾^_^
说下我理解的,lock(this)是给对象上了锁,但是不是把整个对象的属性和方法锁住了,只是让lock(this)这个代码不能在此执行
只有第一个lock(this)中的代码执行完以后才能执行第二个lock(this)
不知道对没呵呵
楼上朋友的代码我认真测试了
没感觉说明什么问题,作者的原理解释运行结果没问题
re: 做软件的都是民工! Enzo 2007-11-26 20:41
汗.....
