if you are using synchronized block on ServletContext then other threads or servlets has to wait for lock there is no doubt about it.
now you are talking about synchronized block on class level.
if you are synchronized on service method then your service variables are
synchronized but your ServletContext or Session Attributes are not synchronized .
To synchronized ServletContext level attributes you dont not have any choice accept to synchronized on ServletContext object.same is true for Session attributes.
If you dont want to synchronized on ServletContext object at all then dont use ServletContext attributes use request attributes or local variables only.
Because request attributes and local variables are bydefault
thread safe.
if you will provide your source code it will be easy for me to explain thread issues.