我有這樣的方法:兩個實例(同步某個對象)平行
public void processChildNodes(Node result, Node source) {
synchronized (source) {
NodeList nodes = source.getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
processNode(result, nodes.item(i));
}
}
}
現在,讓我們說,我想打電話給processChildNodes與類的兩個不同的實例中,這方法是相同的來源(方法的第二個參數),是否有可能這兩個執行可以並行?
答案是,不。 – Mordechai 2013-05-14 05:43:01
爲什麼這與單個對象上的同步有什麼不同?由於'source'在兩次調用中都指向同一個對象,因此它將與在單個對象上進行同步的行爲相同。爲何混淆? – brainOverflow 2013-05-14 06:22:43