KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I see this code quite frequently in some OSS unit tests, but is it thread safe ? Is the while loop guaranteed to see the correct value of invoc ? If no; nerd points to whoever also knows which CPU architecture this may fail on. private int invoc = 0; private synchronized void increment() { invoc++; } public void isItThreadSafe() throws InterruptedException { for (int i = 0; i < TOTAL_THREADS; i++) { new Thread(new Runnable() { public void run() { // do some stuff increment(); } }).start(); } while (invoc != TOTAL_THREADS) { Thread.sleep(250); } }
Tags (comma-separated)
Save Edits
Cancel