2014-11-03 2 views
-1

나는이 방법Java Subject.doAs 메소드가 별도의 스레드에서 실행되었는지 확인하는 방법은 무엇입니까?

이 개체는 방법 run()있다
PrivilegedExceptionAction 

을 통과 것으로 나타났습니다. 실행을 위해 별도의 스레드가 생성된다는 의미입니까? 그렇다면이 스레드를 생성하는 코드의 일부를 입력하십시오. 나는 그것을 찾지 못했다.

오버로드 된 실행 당신이 자신을 호출하지 않는 한 (문자열들) 방법 Thread 클래스에 의해 무시됩니다

답변

1

나는 어쩌면이 SCJP 책에서 당신의 대답은 생각합니다. Thread 클래스는 인수없이 run() 메서드 을 기대하며 스레드가 시작된 후에 별도의 호출 스택 에서이 메서드를 실행합니다. run (String s) 메서드를 사용하면 Thread 클래스가 메서드를 호출하지 않고 직접 메서드를 호출하더라도 별도의 호출 스택을 사용하여 새 실행 스레드에서 실행이 발생하지 않습니다 . 다른 일반적인 메서드 호출처럼 호출을 수행 한 코드와 동일한 호출 스택에서 발생합니다.

+1

하지만 표준 jdk에서 어떻게 작동하는지 질문했습니다. 이것은 내 코드가 아닙니다. – user710818

0

아니요, Subject.doAs는 주어진 주제와 동일한 스레드에서 코드를 실행합니다.

관련 문제