5/23 수업

hyunji·2023년 5월 23일
0

비동기 통신(Thread & Handler)

동기 & 비동기

  • 동기: 순차적 작업 방식

  • 비동기: 동시성 작업 방식

  • 누가 더 빨라? 원래는 똑같이 끝나야 함. 하지만 앞에 일을 빨리 끝나니까 비동기가 효율적으로 작업됨을 알 수 있다.

  • 스레드 VS 프로세스

  • latch.countDown(), latch.await() : 카운트 다운의 인자가 0이 될때 까지 await을 써서 기다리다가 다시 진행시켜 줌

왜 UI 작업은 메인 스레드에서만?

  • 다른 스레드에서 ui를 다 바꿀 수 있다면 그 밑의 스레드가 그걸 맞춰주기 위해 개고생할 것
Thread {
    imageView.setImageResource(R.drawable.ic_launcher_foreground)
}.start()
  • 이 코드는 그럼 될까? 된다! 왜?! 예외 발생 보다 빠르게 처리되어 버려서!
  • 그래서 저기에 sleep을 걸어 주면 오류가 나면서 안된다!

핸들러, 메시지 큐, 루퍼

0개의 댓글