我有寫了一個基於XML的文件這樣的方法:兩個線程調用一個方法
private void doProcess() {
Element rootElement = mDoc.createElement("Test");
mDoc.appendChild(rootElement);
....... I build the whole document here...
}
但是這種方法可以由多個線程調用,因此,例如,如果thwo線程調用該方法在同一一次,我得到一個
): org.w3c.dom.DOMException: Only one root element allowed
我已經與ReentrantLock的嘗試,但是,這個didn't工作...有人可以給我一個提示?
編輯:
我不建立多線程的文件...我的方法的每個呼叫建立自己的文件......所以有時我的應用程序是可能發生的我的方法將被調用兩次同一時間...這是我的問題...
甲'Document'只能有一個根元件。您需要直接將子元素添加到該元素。您不能簡單地將多個元素添加到「Document」中,因爲這會導致多個根元素。請注意,'Document'不是線程安全的,因此對'Document'的所有操作都非常「同步」。 –
錯誤是關於文件有多個'root'元素,這不是一個線程的事情。 – 2013-10-31 08:37:40
在父線程中創建根節點並在子線程中添加元素。 – Kishore