It is thread safe. Thread safety means that if this method is called between two or more different threads, it will not return erroneous results.
Is system currentTimeMillis accurate?
Regarding accuracy, you are almost correct. On SOME Windows machines, currentTimeMillis() has a resolution of about 10ms (not 50ms).
What does system currentTimeMillis () do?
currentTimeMillis() method returns the current time in milliseconds. The unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.