(3)Charlie判断出我不懂OOP:线程同步问题(10分)

  • 主题发起人 千中元
  • 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
1)“当两个线程同时访问同一个数据库会发生什么?假设其中的一个打开了一2)个记录,对记录的数据做了一些修改,“同时”(?)第二个程序也在运3)行,也对同一记录的不同部分作了一些修改并把改动写入了数据库。
4)结论:于是在第一个程序(?)把它所做的改动写数据库的的进程中,也就5)取消(?)了第二个程序所做的改动。
问题一:
请看第二行的?和第五行的?
既然是同时,为什么是一取消二的改动?该怎么控制?
问题二:
请看第四行的?
什么一会是程序。。一会是线程。。是外国绕口令还是中国的翻译是绕口令专家?
 
再加10分:}
内幕P117
 
我对翻译水平也不敢恭维
 
照您的意思??
 
从amason买原版
 
配套的光盘上应该有。可我没敢去读。
 
没有全部的,只有几章。
1,应该有个先来后到吧,后来的后改,要不先等会儿?
2,程序是对客户端来说的,database 对 server 来说是线程。
 
如何从Amazon买原版?
我看中了一些其他的书,钱的绝对数目没问题,可惜就是人民币,
也没有信用卡,怎么买?
 
>问题一:请看第二行的?和第五行的?既然是同时,为什么是一取消二的改
>动?该怎么控制?
事实上Windows的多任务并不是说绝对的“同时”,而是给不同的线程分配
时间片,不同线程对同一资源的操作总有一个先来后到,此问题中的大致情
况应该是这样
Trd1 Trd2
改动字段x1 改动字段x2
改动字段x2 改动字段x3
改动字段x3 改动字段x4
改动字段x4 Post
...
Post
注意是Trd2先把修改放入了数据库
然后Trd1修改完成后也存入数据库,当然让Trd2白忙活了一场
这段文字重点在于一个线程在对某一资源操作时,应该把这一
资源表明为“敏感数据”,方式是用临界区(对进程全局)或
互斥对象(对系统全局),让其他线程不能使用。
这样两个线程的行为便为
Trd1 Trd2
标明敏感临界区 休眠
改动字段x1
改动字段x2
改动字段x3
改动字段x4
...
Post
释放敏感临界区 启动

标明敏感临界区
改动字段x2
改动字段x2
改动字段x2
改动字段x2
Post
释放敏感临界区

>>问题二的术语差别应该是翻译的笔误吧?
 
就这样算了吧
 
顶部