Well if you have threads that may call the service and you are in the middle of calling destroy to remove the instance there can be problems, like the resurection of the
Servlet and some others. So by making the destroy thread-safe, you make sure that you have a lock of the object, therefore disallowing any other calls to the object while you are in the destroy.
This also means that the
thread that may call the service method needs to handle the possibility that the object is no longer in existence.
Mark