Can I declare something like this??
static volatile boolean first=false;
解决方案
To expand on Michael's comment.
static simply means not associated with an instance of the containing class.
volatile simply means that the value may be changed by other threads without warning.
So your question boils down to "can a field not associated with an instance of the containing class be changed by another thread without warning?"
As Michael pointed out, the answer to that question is yes. Instance association is orthogonal to concurrent modification.