클라이언트/서버 예제
@Test(timeout = 10000)
public void shouldRunInUnder10Seconds() throws Exception {
Thread[] threads = createTthreads();
startAllThreads(threads);
waitForAllThreadsToFinish(threads);
}
→ 전형적인 시스템 작업 처리량을 검증하는 케이스
→ 단일 스레드라면 환경에서 속도를 끌어올릴 방법은 없다
I/O : 소켓 사용, DB 연결, 가상 메모리 스와핑 기다리기 등
→ 동시성으로 성능을 해결
프로세서 : 수치 계산, 정규표현식 처리, 가비지 컬렉션 등
→ 하드웨어를 추가해 성능을 높인다
가능한 실행 경로
public class IdGenerator {
int lastIdUsed;
public int incrementValue(){
return ++lastIdUsed;
}
}
만약 2개의 스레드가 존재한다면 가능한 경우의 수는?
→ return ++lastIdUsed 자바 코드 한 줄은 바이트 코드 명령 8개에 해당
→ 가능한 경로 수는 12,870개