Communication between threads

First I define a class,with static members and methods.And then I access the static members of that class in different places with “::” at the same time.It returns different values.How can this happen?
++++++++++++++++++
I make some changes.
I use uvm_pool to pass the singleton of that class,but strage thing happened.
Code of the two places is same:
Ccount_pool cnt_p;
cnt_p=Ccount_pool::get_global_pool();
`uvm_info(get_type_name(),$psprintf(“cnt_pool id=%0d”,cnt_p.get_inst_id()),UVM_LOW);
One id is 2201 and the other is 1704.

In reply to cainiaoma:

not enough information to judge.
quick answer is :
understand your env structure
understand where and how your threads been created
understand how you access uvm_pool or global variable
then you will know why it is different

In reply to javatea:

Tanks for your help.
I checked my env structre.There was a static class packaged in two packages.So the class was defined twice at difference places.I access the class in two different path and two instants of that class generated.