2009-10-27 2 views

답변

7

Google의 Thread Weaver은 자바와 비슷한 기능을 제공합니다. 스레드 위버 프로젝트 페이지에서 :

스레드 위버는 Java로 다중 스레드 단위 테스트를 작성하기위한 프레임 워크입니다.

코드 내에 중단 점을 만들고 중단 점에 도달했을 때 스레드 실행을 중지하는 메커니즘을 제공합니다. 그런 다음 첫 번째 스레드가 차단 된 동안 다른 스레드를 실행할 수 있습니다. 경쟁 조건과 스레드 안전성을 검사 할 수있는 반복 가능한 테스트를 작성할 수 있습니다.

+0

나는 그것에 대해 몰랐다. 나는 CHESS가 더 포괄적이라고 생각하지만, 정보에 감사드립니다! –

5

Java 프로그램을 확인하려면 java를 관리 코드 (http://www.ikvm.net/)로 변환하여 체스로 실행하십시오.

Java 용 정적 분석 도구가 많이 있습니다 (예 : findbugs). 소스 코드를 기반으로 동시성 문제를 찾는 데 도움이 될 수 있지만 실제로 응용 프로그램을 실행하려고 시도하지는 않습니다.

+0

+1 : 흥미로운 아이디어. IKVM은 .NET에서 JVM 및 Java 클래스 라이브러리의 (초기) 구현입니다. –

+0

그건 재미 있어요; 제안에 감사드립니다. 하지만 Java 메모리 모델은 .NET과 비슷합니다. .NET에서 Java 코드를 실행하면 다른 문제가 발생할 수도 있습니다 ... –

+0

Hosam : 대부분의 Java 코드는 정확한 메모리 모델 특성에 따라 올바르게 실행되지 않습니다. 그래서 나는 당신의 테스트가 그런 것들에 실패하지 않을 것이라고 생각합니다. 메모리 모델은 Java의 경우조차도 구현 세부 사항의 상당 부분을 차지한다는 점을 기억하십시오 (많은 것들이 실제로 지정되었지만 실제로는 정상적인 프로그램이 거의 의존 할 필요가 없습니다). – Joey

관련 문제