then, for each instance ma list is separate and update-able right?
Yes but as I pointed out earlier your code to create the child threads uses the same childThread object for each new Thread so in your case all threads will be using the 'list' variable.
Note also that if you do change your code to create new instances of childThread but pass the same List object to each childThread constructor then again each thread will be accessing the same List object.