Skip to main content

Posts

Showing posts with the label thread-safety

Android Thread Concurrent running threads notify between them

I want to execute the method uploadingDone() after completion of all three threads. The flags are working most of time correct. In rare case all three flags set to true and BLOCK1 get executed twice. All three threads are doing different tasks on different data ( No Concurrent modification can occur). Can I eliminate the flags with any native function on thread? All three threads to be run in parallel(Mandatory Requirement.). BLOCK1 should be called only once . private synchronized void uploadingDone(){ if( isItemUploaded && isListUploaded && isStoreUploaded){ uploadingDone = true; //<BLOCK1> //TODO move to next screen }else{ Log.i(TAG, "uploadingDone: Failed"); } } private boolean isListUploaded = false, isItemUploaded = false, isStoreUploaded = false, uploadingDone = false; private class ListUpload extends Thread{ @Override public void run() { isListUploaded = true; Log.i(TAG