请教一个线程同步的简单问题.

kaixindzl 2009-09-13 06:22:21
加精
比如我定义一个纪录类型数据:
type
Ttest = record
A: boolean ;
B,
C: integer ;
D: string[10] ;
end;
test = Ttest ;

var
tmp: test ;


然后, 有 1 , 2 , 3 , 4 四个工人线程, 循环执行写操作:
线程1: 写 tmp.a
线程2: 写 tmp.b
线程3: 写 tmp.c
线程4: 写 tmp.d

主线程读取tmp.a, tmp.b, tmp.c, tmp.d 的值.

请问, 这样如果不进行线程同步的话. 会不会导致出现错误或隐患?

谢谢!
...全文
508 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainychan2009 2010-06-27
  • 打赏
  • 举报
回复
以前把多线程看得很神秘,搞懂了之后才发现它跟类没有什么分别,临界区、信号量、互斥都是变着法的演示加锁、解锁的过程。线程就是一个多个动作,想做什么事情,那么就把相关资源灌到线程类中,理解粗鄙,只是为了消除对多线程、同步异步有恐惧感的同志们。。呵呵。理解有误,高手拍砖,欢迎
wjlsmail 2009-09-18
  • 打赏
  • 举报
回复
因为涉及对同时的读写操作,要做同步处理。用临界区TCriticalSection最简单。
cindymm_0420 2009-09-17
  • 打赏
  • 举报
回复
学习一下
lmc0985 2009-09-16
  • 打赏
  • 举报
回复
gaoshou
adipreneo 2009-09-16
  • 打赏
  • 举报
回复
这什么语言,看得我晕忽忽的
asd_123 2009-09-16
  • 打赏
  • 举报
回复
学习
Riverhusky1990 2009-09-16
  • 打赏
  • 举报
回复
学海无涯啊
barech 2009-09-16
  • 打赏
  • 举报
回复
应该不会造成资源的破坏,不需要加线程同步

louise09 2009-09-16
  • 打赏
  • 举报
回复
有点晕,看来还得加强学习!
pooler1122 2009-09-16
  • 打赏
  • 举报
回复
xuexizhong~~~~~~
leopardaa521 2009-09-15
  • 打赏
  • 举报
回复
mark
gunuoheng 2009-09-15
  • 打赏
  • 举报
回复
不太理解 !!
haming 2009-09-15
  • 打赏
  • 举报
回复
做线程同步好些
例如
var
c:TCriticalSection;

.......

procedure bgobject
begin
c.Enter;
try
//这里去访问多个线程用到的资源
finally
c.Release
end;
end;
zhangzhao123 2009-09-15
  • 打赏
  • 举报
回复
来学习
flzb0000 2009-09-15
  • 打赏
  • 举报
回复
同步是对的
solexiaobaosole 2009-09-14
  • 打赏
  • 举报
回复
高手 下次解决
csg0628 2009-09-14
  • 打赏
  • 举报
回复
同学网~老同学都在这里哦,分享生活每一刻

http://ii.ovooo.cn/1_18_758476.aspx
qgylovelj 2009-09-14
  • 打赏
  • 举报
回复
JF
luocheng0123 2009-09-14
  • 打赏
  • 举报
回复
学习一下
a1762297 2009-09-14
  • 打赏
  • 举报
回复
哦 原来是这样的啊
加载更多回复(15)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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