被保存歷史事件在我的應用程序,因爲我需要提供一些代碼生成此代碼:製作類線程安全
public class LogDataBase {
public LogDataBase(Context context) {
try {
this.context = context;
String logPath = context.getFilesDir() + logStoragePath;
file = new File(logPath);
if (!file.exists()) {
file.createNewFile();
}
} catch (Exception e) {
Errors += ("\n" + e.getMessage());
}
}
public void addItem(String log) {
try {
dbWriter = new FileWriter(file, true);
//appand String log to file
....
}
public ArrayList<String> getArrayList() {
//get all Logs as arraylist
}
}
的主要問題是如何開發的應用程序,是線程安全的?由於應用程序可能使用服務和多處理,多線程應確保代碼和類是安全的。
請提供這一重要議題一些綜合性的解釋(不只是說Synchronization , Lock,...
)
希望成爲別人的
在此先感謝有用。
關於如何使線程保存沒有通用的答案。取決於你班上不能同時發生的事情。例如。在添加項目時,可能不應讀取/修改ArrayList。如果你返回一個引用你的內部列表,這意味着調用'getArrayList()'的客戶端需要參與同步 – zapl
@zapl我同意你的觀點,沒有通用的答案,但可能存在通用的幫助指南 – FxRi4
這就是這裏非常廣泛。你最好閱讀一本書,如[Java Concurrency in Practice](http://jcip.net/)或觀看一些視頻,如[this](http://www.youtube.com/watch?v=V2jFpFGAwcU) – zapl