Results 1 to 3 of 3
Thread: Passing params by ref
- 08-31-2010, 03:54 PM #1
Member
- Join Date
- Aug 2010
- Posts
- 2
- Rep Power
- 0
Passing params by ref
Here is sample code.
Parser.java:
and Result.javaPHP Code:package org.parser.ts; import java.io.InputStream; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; public class Parser { public Result parse(InputStream xmlStream) throws XMLStreamException { Result result = new Result(); XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xmlStream); while(reader.hasNext()) { if(reader.isStartElement() && reader.getLocalName().equals("Person")) { parsePerson(reader, result); } if(reader.isEndElement() && reader.getLocalName().equals("Person")) { break; } reader.next(); } return result; } private void parsePerson(XMLStreamReader reader, Result result) throws XMLStreamException { reader.next(); while(reader.hasNext()) { if(reader.isStartElement()) { if(reader.getLocalName().equals("FirstName")) { result.setFirstName(reader.getElementText()); } else if (reader.getLocalName().equals("LastName")) { result.setLastName(reader.getElementText()); } } if(reader.isEndElement() && reader.equals("Person")) { break; } reader.next(); } } }
Is this code thread safe? Is passing 'person' (local variable) to method 'parsePerson()' by reference, as I did here, thread safe? And more important question is why? I really want to understand why it is/isn't thread safePHP Code:package org.parser.ts; public class Result { private String firstName; private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
- 09-19-2010, 03:44 PM #2
Member
- Join Date
- Sep 2010
- Posts
- 33
- Rep Power
- 0
Yes, this code is thread safe. Because all data are saved on the stack of the thread. There is no object that are shared between different calls of different threads.
If you would safe the Result object as member variable in the Parser then there is only one place for all threads to safe different results.
I hope this answer your question.
- 09-20-2010, 01:11 PM #3
Member
- Join Date
- Aug 2010
- Posts
- 2
- Rep Power
- 0
Similar Threads
-
Passing a value..
By Lagarto in forum New To JavaReplies: 3Last Post: 01-23-2011, 05:58 PM -
passing value
By KumbhaniMehul in forum Java ServletReplies: 1Last Post: 04-14-2010, 09:52 AM -
Passing Value
By katherine_93 in forum New To JavaReplies: 1Last Post: 03-08-2010, 05:56 AM -
Passing value....
By casid in forum JavaServer Pages (JSP) and JSTLReplies: 1Last Post: 01-03-2010, 11:19 AM -
passing something
By dinosoep in forum Threads and SynchronizationReplies: 2Last Post: 12-05-2009, 09:26 AM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks