1.A &mut T reference is allowed. However it may not cpexists with any other references. and may be created only in single-threaded code.
2.UnsafeCell provides thread-safety. Therefore, creating &T references from multiple threads is safe.
3.The only safe operation is the .get() method, which returns only a raw pointer.
4.Non. UnsafeCell only allows code that would otherwise need unsafe blocks to be written in safe code.