线程锁的问题!小问题求解!

l171147904 2010-03-24 05:20:45
上锁:本线程结束前,禁止别的线程调用该代码!


有这么一组数据:
延迟时间 数据值
100 1
200 2
500 3
1000 4

现在:遍历此数据,
延迟100毫秒,取值--操作函数!
延迟200毫秒,取值--操作函数!...

正确:1000毫秒后,程序执行完毕

错误:1800毫秒,程序执行完毕(100+200+500+1000)

若我对 操作函数 上线程锁;他的结果是 1800 对吗?
若我不上锁,会影响程序健壮性?
...全文
180 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanhuiqiao 2010-04-20
  • 打赏
  • 举报
回复
haa17 2010-04-20
  • 打赏
  • 举报
回复
mark 学习
java__net 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 java__net 的回复:]
1000秒后完成,首先你要明白线程锁的原理,线程休眠,不等于遍历停止。
[/Quote]

想了一下,这句话说的不准确,应该是线程锁定,不等于遍历停止
java__net 2010-04-19
  • 打赏
  • 举报
回复
1000秒后完成,首先你要明白线程锁的原理,线程休眠,不等于遍历停止。
zjlme 2010-04-19
  • 打赏
  • 举报
回复
lock关键字就行了。
l171147904 2010-04-19
  • 打赏
  • 举报
回复
若不用 线程锁,会出现什么问题?什么情况下出现?

4楼提到,相对时间间隔绕过你的问题, 即 ( 100 + (200 - 100) + (500 - 200) + (1000 -500)) == 1000 (是已经确认上锁 执行1800秒?)

是这样的话,我若 100,100,100,200,500 这组数据! 如何执行?


l171147904 2010-04-19
  • 打赏
  • 举报
回复
操作函数:通一个函数

我想问的是,我若用线程锁,锁上;它执行结果是:1000毫秒后 还 1800毫秒?
deknight 2010-04-19
  • 打赏
  • 举报
回复
mark
l171147904 2010-04-19
  • 打赏
  • 举报
回复
谢谢,测试中。。。
lethwei 2010-03-24
  • 打赏
  • 举报
回复
如果不上锁, 肯定会影响健壮性
上锁的话不要用绝对时间量, 可以用相对时间间隔绕过你的问题, 即 ( 100 + (200 - 100) + (500 - 200) + (1000 -500)) == 1000
yangfan1981 2010-03-24
  • 打赏
  • 举报
回复
嗯。临界区。

支持 healer_kx
healer_kx 2010-03-24
  • 打赏
  • 举报
回复
哦,C#的代码啊,那就用lock关键字就行了。
healer_kx 2010-03-24
  • 打赏
  • 举报
回复
那这个工作正好可以由 临界区完成啊。

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧