processElement
и onTimer
никогда не выполняются параллельно.
До Flink 1.10 оба метода будут вызываться после получения блокировки контрольной точки.
Начиная с Flink 1.10, они вызываются только через один и тот же поток задач, поэтому даже безопасно обращаться к полям несинхронизированным способом (даже если использование неуправляемых полей не рекомендуется для начала).