Any question about "thread safety" should be a question about mutable shared data. If your streams do not transmit mutable data, then there is no thread safety issue.
A mutable object or group of mutable objects in your program is a "Safe Stream" if it is impossible for the action of any one thread to put the object / group in a "bad" state that can be seen by other threads.
/ - (.. synchronized / ). , , , synchronized , , / , synchronized block, / "".
. , - "" , . , , - , .
static synchronized, , , "", , .
/ , , synchronized, .
, . , , , .
.