java同一個(gè)包下的類(lèi)互相調(diào)用 java兩個(gè)線程同時(shí)調(diào)用一個(gè)類(lèi)里的同一個(gè)方法,這樣會(huì)出現(xiàn)什么情況?有沒(méi)有問(wèn)題?
java兩個(gè)線程同時(shí)調(diào)用一個(gè)類(lèi)里的同一個(gè)方法,這樣會(huì)出現(xiàn)什么情況?有沒(méi)有問(wèn)題?這取決于方法的功能。如果該方法要修改相同的變量,則可能會(huì)導(dǎo)致線程不同步。也就是說(shuō),如果兩個(gè)線程都調(diào)用一個(gè)公共變量5-1,結(jié)
java兩個(gè)線程同時(shí)調(diào)用一個(gè)類(lèi)里的同一個(gè)方法,這樣會(huì)出現(xiàn)什么情況?有沒(méi)有問(wèn)題?
這取決于方法的功能。如果該方法要修改相同的變量,則可能會(huì)導(dǎo)致線程不同步。也就是說(shuō),如果兩個(gè)線程都調(diào)用一個(gè)公共變量5-1,結(jié)果可能是4,因?yàn)樗鼈兛赡芏嫉玫?,然后它們都配對(duì)5-1,然后將值賦給原始變量。如果該方法只通過(guò)傳入的參數(shù)計(jì)算返回值,不涉及修改公共變量,則沒(méi)有效果
但是,當(dāng)兩個(gè)線程都被鎖定時(shí),如果它們包含同一個(gè)對(duì)象,則不可能同時(shí)運(yùn)行,同時(shí)運(yùn)行只是一種錯(cuò)覺(jué)。同時(shí),只能處理一個(gè)線程