Threading Query.
I have a query regarding Threading.
I have a method which is as follows
(1)
privatevoid update(Message message){
XMLMessage xmlmessage = (XMLMessage)message;
StringBuffer rule =new StringBuffer();
Document messagedoc = xmlmessage.getDocument(rule);
if (messagedoc!=null)
{
final Element messageelem = messagedoc.getDocumentElement();
if (messageelem!=null)
{
m_executor.execute(new Runnable(){
publicvoid run()
{
process(messageelem);
}
});
}
}
Query No 1:
From the above code,process() will run in its own thread. Right ?
Now I have modified the above code to include some further checks.
(2)
privatevoid update(Message message){
XMLMessage xmlmessage = (XMLMessage)message;
StringBuffer rule =new StringBuffer();
Document messagedoc = xmlmessage.getDocument(rule);
//*** Added by me.
String sFillQuantityPriceEntered = extractValue("xxx");
String sName = = extractValue("abn");
if (messagedoc!=null)
{
final Element messageelem = messagedoc.getDocumentElement();
if (messageelem!=null)
{
m_executor.execute(new Runnable(){
publicvoid run()
{
process(messageelem);
}
});
}
}
privatevoid extractValue(String name){
}
As I have invoked the extractValue("abn") how do I ensure that these run in a single thread.
Do I need to say:
(3)
privatevoid update(Message message){
XMLMessage xmlmessage = (XMLMessage)message;
StringBuffer rule =new StringBuffer();
Document messagedoc = xmlmessage.getDocument(rule);
synchronised(this){
String sFillQuantityPriceEntered = extractValue("xxx");
String sName = = extractValue("abn");
}
if (messagedoc!=null)
{
final Element messageelem = messagedoc.getDocumentElement();
if (messageelem!=null)
{
m_executor.execute(new Runnable(){
publicvoid run()
{
process(messageelem);
}
});
}
}
or if the leave the code in (2), as it is.

