투케이2K

81. (kotlin/코틀린) Thread 사용해 순차적 동기 (sync) 로직 처리 실시 본문

Kotlin

81. (kotlin/코틀린) Thread 사용해 순차적 동기 (sync) 로직 처리 실시

투케이2K 2022. 9. 28. 13:03

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // TODO [테스트 메소드 정의 실시]
    fun testMain(){
        Log.i("---","---")
        Log.d("//===========//","================================================")
        Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 테스트 함수 동작 실시]")
        Log.d("//===========//","================================================")
        Log.i("---","---")


        // [로직 처리 실시]
        try{

            // ------------------------------------

            // [초기 변수 선언]
            var count = 0


            // [스레드 동작 지정 실시]
            val sync = Thread(Runnable {
                for(i in 1..3 step(1)) {

                    // [카운트 값 다시 설정]
                    count = i

                    // [1초간 sleep (대기) 설정]
                    Thread.sleep(1000L)

                    // [카운트 로그 출력]
                    Log.i("---","---")
                    Log.d("//===========//","================================================")
                    Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 카운트 결과 확인 실시]")
                    Log.i("","\n"+"[count : "+ count +"]")
                    Log.d("//===========//","================================================")
                    Log.i("---","---")
                }
            })
            sync.start() // [스레드 동작 수행]
            sync.join() // [스레드 작업 완료까지 대기]


            // [로그 출력 실시]
            Log.i("---","---")
            Log.w("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 로그 결과 확인 실시]")
            Log.i("","\n"+"[count : "+ count +"]")
            Log.w("//===========//","================================================")
            Log.i("---","---")

            // ------------------------------------
        }
        catch(e : Exception){
            Log.i("---","---")
            Log.e("//===========//","================================================")
            Log.i("","\n"+"[Test_Kotlin > testMain() 메소드 : 에러 상황 발생]")
            Log.i("","\n"+"[error : "+ e.message +"]")
            Log.e("//===========//","================================================")
            Log.i("---","---")
        }
    }
 

[결과 출력]

 

 

반응형
Comments