재진입 가능하지 않은 (즉, 라이브러리의 어떤 기능도 재진입이 불가능한) 라이브러리 (C로 작성된 라이브러리)를 사용하고 있습니다. 'v'핸들을 얻기 위해 System.load를 통해 라이브러리를로드했다고 가정합니다. 재진입 문제 (시도했지만 말도 안되는 결과) 때문에 두 개의 스레드에서 v를 사용할 수 없습니다. 나는 자물쇠를 사용할 수 있었지만, 내가 가질 수 있었던 어떤 평행선이라도 패배시켰다.Java : 동일한 동적 라이브러리를 두 개의 스레드 (동일한 JVM의 두 스레드)에로드하십시오.
내가하고 싶은 것은 두 개의 스레드를 시작하고 두 개의 다른 핸들을 얻기 위해 각 스레드의 스레드를로드하는 것입니다 (따라서로드 된 라이브러리의 사본이 두 개 있습니다).
Java로 가능합니까? 감사합니다 Saptarshi
로드하는 라이브러리는 eval 및 parse라는 함수입니다. 나는 문장을 분석하고 평가하고있다 (평가는 많은 시간이 걸릴 수있다). 이러한 함수 중 어느 것도 스레드로부터 안전하지는 않지만 라이브러리의 메모리 할당자는 스레드로부터 안전하지 않습니다. 나는 병렬 eval을하고 싶다. 그렇다. 쓰레드의 대부분은 라이브러리의 'parse'& 'eval'함수를 호출하는 것이다. – Sapsi