- 0
- 0
- 约小于1千字
- 约 1页
- 2026-06-02 发布于北京
- 举报
第六次作业第2题第1问和第2问
2014011328计43
1.Second代码结果为55,即为从1相加到10的结果;
First代码结果有一定随机性,多为14或15,偶尔会出现13
的结果。是在getNumber()和add()函数中,有人为的
线程的延迟。以getNumber()为例,在i++和returni之间
有200毫秒的时间延迟,而在这段时间里,其他的几个线程
也会通过getNumber()对公有数据i的值进行改变,导致在
returni时,i的值已不再是我们所希望的原先的那个i了。
add()同理,故在1到10之中数的几个数进行了加法
运算,导致结果错误。
2.第一处:使得当前线程沉睡200毫秒,期间i的值可能会发
生改变
第二处:由于引入了多线程,故可能出现
InterruptedException类异常,在方法头处先进行对异常的
,若出现某一个线程被中断,则抛出
原创力文档

文档评论(0)