Код: Выделить всё
public class Main {
public static void main(String args[]) {
ServiceA serviceA=new ServiceA();
String greetings=serviceA.getGreetings();
S.O.P(greetings); ScopedValue.where(NAME, "John Doe").run(
() -> result = serviceB.getServiceBGreetings();
)
);
t1.join();
return result;
}
}
class ServiceB{
ServiceC serviceC=new ServiceC();
public String getServiceBGreetings() {
String result=null;
Thread t1=new Thread.ofVirtual().start(
() -> result = serviceC.getServiceCGreetings();
);
t1.join();
return result;
}
}
class ServiceC{
public String getServiceCGreetings() {
return "Hello "+ NAME.get();
Подробнее здесь: [url]https://stackoverflow.com/questions/79691475/java-virtual-thread-and-scoped-value[/url]