java - ArrayList ThreadSafety Test Code fails -



java - ArrayList ThreadSafety Test Code fails -

given, add method defination in arraylist follows :-

public boolean add(e e) { ensurecapacity(size + 1); // increments modcount!! elementdata[size++] = e; homecoming true; }

please find next programme check thread safety of arraylist.

package pack4; import java.util.arraylist; public class demo { public static void main(string[] args) { arraylist<string> al = new arraylist<string>() ; new addfirstelementthread(al).start() ; new removefirstelementthread(al).start() ; } } class addfirstelementthread extends thread{ arraylist<string> list ; public addfirstelementthread(arraylist<string> l) { list = l ; } @override public void run() { while(true){ if(list.size() == 0){ list.add("first element") ; } } } } class removefirstelementthread extends thread{ arraylist<string> list ; public removefirstelementthread(arraylist<string> l) { list = l ; } @override public void run() { while(true){ if(list.isempty()){ try{ list.get(0) ; system.out.println("hence proved, arraylist not thread-safe."); system.exit(1) ; }catch (exception e) { //continue, if no value there @ index 0 } } } } }

but, programme never terminates, fails prove thread-safety of arraylist.

please, suggest right implementation test thread-safe behaviour of arraylist , vector.

thanks & best regards,

rits

arraylist not thread-safe; vector is. can wrap arraylist collections.synchronizedlist() if require it.

java multithreading collections thread-safety arraylist

Comments

Popular posts from this blog

iphone - Dismissing a UIAlertView -

c# - Can ProtoBuf-Net deserialize to a flat class? -

javascript - Change element in each JQuery tab to dynamically generated colors -