色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java的線程安全是什么

夏志豪2年前14瀏覽0評論

java的線程安全是什么?

這個還真不能一句話概況,我博客寫了一長篇關于線程安全的,我提煉了下面這段,看懂也基本夠了:

單線程不會有安全問題,多線程編程才會有安全問題,根本在于是否存在critical resource競爭資源,如果多線程不會訪問競爭資源就不存在安全問題,否則則要處理,

什么是競爭資源呢,具體如下:

如果是各自訪問其上下文context的資源,比如kafka consumer partition worker線程訪問各自的storage則是互相不打擾的;

如果執行的某個方法內只用到了局部變量,由于局部變量位于各自thread的棧里,所以互不干擾;

如果執行的某個方法用到了傳入的變量,也就是所謂的形式參數變量,則要看這個傳入的變量是否是object,如果只是普通的參數則沒關系,如果是對象,要看對象是否是同一個引用,不同引用沒有關系;

如果執行的某個方法內用到了同一個引用,不管是傳入的還是外部全局的變量,比如log4的logger,由于log4已經做好了線程安全寫log,所以不用擔心;

如果執行的某個方法內用到了同一個引用:

i)但是只是讀沒有寫,讀和讀是沒有沖突的,也沒有關系;

ii)都有寫,但是寫不依賴于讀,即線程不需要獲取“最新”數據就可以直接寫入覆蓋,這種情況也沒有關系;

iii)都有寫,而且寫依賴于讀到最新數據,則需要處理;

線程 java,java的線程安全是什么