搜尋

首頁  >  問答  >  主體

java - 單例服務解決多進程寫入文件

現在需要一個多進程寫檔案的程式

如果直接寫則需要保證程序對檔案句柄加鎖

現在想透過spring 註冊一個單例的寫入服務

多個程式在寫入檔案時,去請求spring 的介面去寫入檔案

這樣的方案是否可行?

或是用一個單例的RPC服務?

單例即能保證寫檔案的時候是實例,避免多執行緒、多行程同步問題!

天蓬老师天蓬老师2740 天前980

全部回覆(3)我來回復

  • ringa_lee

    ringa_lee2017-05-17 10:03:08

    我認為這樣還是不行的,本質上Spring只是幫你管理實例,線程安全的問題還是要自己解決

    再者,你說的是多進程寫文件,透過rpc也只是多執行緒方式吧?

    其實本質就是想實現一個線程安全的文件寫接口,單例是OK的,自己的實例當作鎖就行了

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-17 10:03:08

    =_=! 一個多進程的程式?

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-17 10:03:08

    用zookeeper,zookepper一個特點是寫同一個znode只能有一個客戶端(進程)寫入成功,就用這個客戶端寫文件,或者利用數據庫寫入同一個主鍵只有一個可以插入成功的特點

    回覆
    0
  • 取消回覆