java多線程為什么加同步鎖 Java中sleep方法和wait方法的區(qū)別?
Java中的AQS,即線程同步:解決多線程編程享資源的問題;進程同步:解決多進程編程享資源的問題,但有些學(xué)生還沒有 t對線程同步和進程同步的研究不夠深入。比如互斥和條件變量是否可以同時用于線程同步和進
Java中的
AQS,即
線程同步:解決多線程編程享資源的問題;進程同步:解決多進程編程享資源的問題,但有些學(xué)生還沒有 t對線程同步和進程同步的研究不夠深入。比如互斥和條件變量是否可以同時用于線程同步和進程同步,本質(zhì)上是不同的。首先,我們知道linux下的每個進程都有自己獨立的進程空間。突然,假設(shè)進程A和進程B各有一個互斥體,并且這個鎖被放在進程的全局靜態(tài)區(qū)域,那么AB進程就不能感知彼此 s互斥。
互斥鎖和條件變量來自Posix.1線程標(biāo)準(zhǔn),它們總是可以用來同步進程中的線程。
如果互斥體或條件變量存儲在多個進程共享的內(nèi)存區(qū)域中,Posix還允許它用于這些進程之間的同步??吹竭@里,你有什么發(fā)現(xiàn)嗎?線程同步和進程同步的本質(zhì)區(qū)別在于鎖放在哪里,私有進程空間還是多個進程共享的空間,鎖是否具有進程共享的屬性。