进程同步实验答辩.docx

实验一 线程同步 计科1304班梁玮 实验目的 通过观察计算机运行时线程的同步执行,进而在实践中加深对线程同步的理解。 实验内容 本次实验旨在产生一种多线程执行时的矛盾问题,并寻找方法解决这个问题。为了产生矛盾,首先要建立两个操作相同的线程,并且让它们同时访问两个全局变量accnt1和accnt2,每次访问都给accnt1和accnt2分别加上和减去相同的数,最后在将accnt1和accnt2求和,观察两个账户的余额之和将永远是0。线程一旦检测到混乱的发生,便终止循环并打印交易的次数(counter)。 实验步骤 问题提出——不采取任何措施 #include stdio.h #include stdlib.h #include windows.h int accnt1 = 0; int accnt2 = 0; DWORD WINAPI run(LPVOID p){ int counter = 0; int tmp1,tmp2,r; int id = (int)p; do{ r = rand(); tmp1 = accnt1; accnt1 = tmp1 + r; tmp2 = accnt2; accnt2 = tmp2 - r; counter++; }while(accnt1 + accnt2 == 0); pr

文档评论(0)

1亿VIP精品文档

相关文档