java - Why is arraylist's size not right when multiple threads add elements into it? -


why arraylist's size not right when multiple threads add elements it?

threadcount = 100; list<object> list = new arraylist<>(); (int = 0; < threadcount; i++) {     thread thread = new thread(new mythread(list, countdownlatch));     thread.start(); }  class mythread implements runnable {     // ......      @override     public void run() {         (int = 0; < 100; i++) {             list.add(new object());         }     } } 

when program done, size of list should 10000. actually, size may 9950, 9965 or other numbers. why?

i know why program may raise indexoutofboundsexception , why there nulls in it, not understand why size wrong.

i not understand why size wrong?

as arraylist not thread-safe 2 threads may add @ same index. 1 thread overwrites.


Comments

Popular posts from this blog

java - is not an enclosing class / new Intent Cannot Resolve Constructor -

python - Error importing VideoFileClip from moviepy : AttributeError: 'PermissionError' object has no attribute 'message' -

qt - QML MouseArea onWheel event not working properly when inside QML Scrollview -