This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Thread Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Thread Question" Watch "Thread Question" New topic

Thread Question

Gopesh Sharma

Joined: Nov 12, 2002
Posts: 18
This is one of the 'Thread' questions from Java Certification Book by Khalid:
Given the following program, which statement is true?

1. The program will fail to compile.
2. One cannot be certain whether any of the letters i,j,k will be printed during execution.
3. One can be certain whether any of the letters i,j,k will ever be printed.
4. One can be certain that the letters i and k will never be printed during execution.
5. One can be certain that the letter k will never be printed during execution.
Correct Answer is: 2
Can someone explain more clearly? The explanation given in the book is not very sufficient.
[ November 23, 2003: Message edited by: Gopesh Sharma ]
[ Jess added UBB [code] tags to preserve whitespace, check 'em out! ]
[ November 23, 2003: Message edited by: Jessica Sant ]

SCJP, SCWCD, Brain Bench Certified in Java 1.2, Web Methods Certified Developer, HP Star Certified in HP Net Servers, CNE, CNA.
Phillip de Ridder

Joined: Nov 18, 2003
Posts: 1
I think the reason why 2 is correct is because of thread deadlock. The threads that are started are only made "ready" when MyThread.start()is called. The thread scheduler will then pick up these two threads (in no particular order) and start executing them. Once a thread has started executing it obtains a lock on the first synchronized statement and proceeds to execute it. The lock is released when the the thread proceeds to the next statement. It is possible for the JVM's thread scheduler to start executing the other thread at some stage during or after the first thread begins execution, however it is possible that a lock may be held on any of the synchronized statements by one of the threads - causing a possible thread deadlock, and hence the check method may never execute.
Hope this Helps
H Gokulam
Ranch Hand

Joined: Nov 04, 2003
Posts: 46
Check this Link. Threads

Harikumar G<br />SCJP 1.4
I agree. Here's the link:
subject: Thread Question
It's not a secret anymore!