콘텐츠와 같은 스레딩 문제를 시각화하는 데 가장 적합한 다이어그램 유형은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1106221

문제

시스템의 문제를 디버깅하는 동안 병목 현상을 일으키는 스레드 경합을 발견했습니다. 이 문제를 처리하는 데 관련된 다른 사람들에게 현상을 설명해야합니다. 그들 중 일부는 개발 팀이 아닙니다 (아직, 합리적으로 기술적입니다). 그렇다면 어떤 유형의 다이어그램을 사용할 수 있으며, 논쟁, 교착 상태 등과 같은 스레딩 문제를 묘사 할 수 있습니까? 일부 예는 매우 유용합니다.

도움이 되었습니까?

해결책

Doug Lea (Java의 동시 프로그래밍)는 스레드의 열이있는 수직 타임 라인을 사용한 다음 열의 행은 주어진 시간에 상태를 캡처합니다.

연속 행은 일련의 이벤트를 캡처합니다.

문제는 많은 디스크가 가능한 상태 변화의 다양한 순열을 고려해야한다는 것입니다.

이 다이어그램의 PowerPoint 애니메이션 버전이 생각하는 청중에게 도움이 될지 궁금합니다.

다른 팁

하나의 다이어그램과 같은 방식으로 데이터 그램 수준에서 네트워크 통신과 같은 방식으로.

예를 들어, 각 스레드에 대해 하나의 타임 라인을 그린 다음 크로스 스레드 커뮤니케이션은 한 줄로 구성되어 다른 하나를 보내고 다른 하나를 수신하는 지점에서 해당 타임 라인을 연결합니다.

대기 그래프는 유용 할 수 있으므로 리소스와 스레드 간의 종속성을 다이어그램하는 데 도움이됩니다.

다이어그램 일 필요가 없다면 간단한 (Verbose) 프로그램을 작성할 수 있습니다. 모든 교과서가 동시성/교착 상태 문제를 가르치는 방식과 마찬가지로.

UML의 시퀀스 다이어그램이 아마도 최선의 선택 일 것입니다. 여러 스레드를 표시하기 위해 각 스레드에는 스레드의 시작 및 종료를 보여주는 수직 막대가 있습니다. 수직 막대 사이의 화살표는 스레드 사이에 전달 된 메시지를 보여주고, 그 자체로 돌아가는 화살표는 스레드 자체를 호출하는 스레드를 보여줍니다.

몇 가지 예는 다음을 참조하십시오. http://www.agilemodeling.com/artifacts/satediasgram.htm

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top