ScopedValues w Javie 20 i ThreadLocal w Javie 1.2. Co mają wspólnego, a czym sie różnią?