文章詳情頁
java - 單例服務解決多進程寫文件
瀏覽:243日期:2023-12-11 13:22:45
問題描述
現在需要一個多進程寫文件的程序
如果直接寫則需要保證進程對文件句柄加鎖
現在想通過spring 注冊一個單例的寫入服務
多個程序在寫入文件時,去請求spring 的接口去寫入文件
這樣的方案是否可行?
或者用一個單例的RPC服務?
單例即能保證寫文件的時候是一個實例,避免多線程、多進程同步問題!
問題解答
回答1:我認為這樣還是不行的,本質上Spring只是幫你管理實例,線程安全的問題還是要自己解決
再者,你說的是多進程寫文件,通過rpc也僅僅是多線程方式吧?
其實本質就是想實現一個線程安全的文件寫接口,單例是OK的,自己的實例當作鎖就行了
回答2:=_=! 一個多進程的程序?
回答3:用zookeeper,zookepper一個特點是寫同一個znode只能有一個客戶端(進程)寫入成功,就用這個客戶端寫文件,或者利用數據庫寫入同一個主鍵只有一個可以插入成功的特點
標簽:
java
相關文章:
1. python - 求一個在def中可以實現調用本def滿足特定條件continue效果的方法(標題說不太清楚,請見題內描述)2. $fields = $values = [];這條代碼一直定義不了,一直報錯,老師的源碼也是被報錯的,執行不了,請問該怎么解決這個問題3. mysql - SQL操作時間的函數?4. java - mybatis怎么實現在數據庫中有就修改,沒有就添加5. 正則表達式 - python pandas的sep參數問題6. javascript - 用表單提交兩個時間段請求后臺返回對應數據時出現的一些問題!7. docker內創建jenkins訪問另一個容器下的服務器問題8. angular.js - angularjs的自定義過濾器如何給文字加顏色?9. MYSQL新建用戶設置可以遠程訪問的問題10. javascript - c#如何向js傳值
排行榜
![$fields = $values = [];這條代碼一直定義不了,一直報錯,老師的源碼也是被報錯的,執行不了,請問該怎么解決這個問題](http://www.piao2010.com/attached/image/news/202205/093622cb60.png)