JAVA多线程编程

发布网友

我来回答

2个回答

热心网友

多线程程序中,如您说的四线程,2个对一个变量加1,2个对一个变量减1,如果这个变量声明的时候加了synchronized关键字,那么这个变量同时只能有一个线程访问,其他的线程会排队,如果没加,那么可能出现同时操作一个变量的情况,举例来说,1个加的线程和一个减的线程同时对一个值为3的变量进行操作,可能的结果是4或2.

热心网友

因为是多线程,所以他们是同时执行的,那么在某个时刻,线程1可能把变量a加1,然后输出,加一后的结果,但是因为这个加一的操作和这个输出过程需要一定的时间(虽然很短),但有可能在这个过程中线程2又对变量a进行加1操作,比如,a=1,线程1执行a++;然后输出,你可能认为一定会输出2;但是如果在加1后输出前线程2有进行了a++;操作,那么线程1就可能输出3了。
“二个加1,二个对一个变量减一,”这句话的意思就是让你测试这种可能性,也可能是让你通过线程同步来解决这种问题。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com