코루틴2 코틀린- CPU 바운드, I/O 바운드 + 용어정리 CPU 바운드, I/O 바운드 CPU 바운드 CPU만 완료하면 되는 작업 중심 알고리즘 알고리즘 성능 → CPU 성능에 좌우 코드를 더 빠른 CPU에서 실행하면 코드 변경 없이 성능 향상 I/O 바운드 입출력 장치에 의존하는 알고리즘 실행시간 → 입출력 장치의 속도에 좌우 네트워킹이나 컴퓨터 주변기기로부터 입력받는 작업들도 포함됨 최적화가 외부시스템이나 장치에 의존 EX) 코드에 DB와 통신하는 부분이 포함될경우 통신, DB 성능에 따라 실행시간이 달라짐 CPU 바운드 알고리즘에서의 동시성과 병렬성 다중코어에서 병렬성을 활용하면 성능향상가능 : 단어 3000개 검사시 1000개당 스레드 1개 생성 및 실행 → 스레드 3개에서 계산 → 순차적 실행의 약 3분의 1로 단축 단일 코어에서 동시성을 구현하면 성.. 2021. 5. 16. 코루틴- 동시성 / 병렬 코루틴 동시성/ 병렬 동시성은 애플리케이션이 동시에 한개이상의 스레드에서 실행될때 발생 이 스레드간의 통신과 동기화가 되어야 애플리케이션이 정상동작 가능 동시성에 대해 올바른 동시성 코드 결정론적인 결과를 가짐 실행순서에는 약간의 가변성 허용 : 이를 위해 서로 다른 부분이 독립성이 있어야 하고 조정이 필요함 비동시성 코드 fun getProfile(id : Int) : Profile { val basicUserInfo = getUserInfo(id) val contactInfo = getContactInfo(id) return createProfile(basicUserInfo,contactInfo) } → 사용자정보 return 전까지 연락처정보 요청하지 않음 장점 정확한 실행순서를 알수있음 사이드 이.. 2021. 5. 16. 이전 1 다음