728x90
1. 문제의 발생
fun main(){
println(123)
Thread.sleep(10000)
while (true){
println(readln())
}
}
// 콘솔
123
// sleep
1
2
2
3
123
// sleep 끝
1
2
2
3
123
위와 같이 특정 동작 후 3초의 딜레이를 넣기 위해 Thread.sleep(3000)을 작성했다. 하지만 sleep으로 스레드가 비활성화 된 상태에서 입력한 값들이 readln에서 읽히는 문제가 발생했다.
2. 사실확인 및 원인 분석
여러 방면으로 찾아봤는데 원인은 readln이 Scanner 클래스라 Thread에 종속되지 않아서 발생하는 일이었다.
결국 thread를 sleep 시키더라도 콘솔에 입력됐다는 로그가 남아있어서 readln은 입력된 값을 받아온다.
3. 시도 및 결과
목표로 하는 개발자는 콘솔개발자가 아니라 안드로이드 개발자이기 때문에 콘솔에서만 사용하는 여러 기능들에 대해 너무 깊게 파고들지 않는 것이 좋을 것 같다는 조언을 듣고 고민을 접기로 했다.
728x90
'개발 > 트러블 슈팅' 카테고리의 다른 글
| 04/16 수준별 4주차 과제 트러블 슈팅 (0) | 2024.04.16 |
|---|---|
| 03/21 주특기 1주차 트러블 슈팅 (0) | 2024.03.21 |
| 03/05 Toolbar 이동 기능 트러블 슈팅 (0) | 2024.03.05 |