일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 아파치란
- 안드로이드 스튜디오 tts
- AAC
- apache nginx
- dagger error
- 안드로이드 스튜디오 반복되는 레이아웃 코드
- recyclerview item recycle
- 안드로이드 스튜디오 인터넷 연결 확인
- apache란
- 디자인 패턴 예제
- 리사이클러뷰 아이템 재사용
- Kotlin
- java thread 예제
- savedinstancestate
- 안드로이드 스튜디오 custom dialog
- 객체지향 프로그래밍 5가지 원칙
- 다른 객체 리스트의 비교
- java
- LifeCycle
- hilt error
- 아파치 엔진엑스
- 변수
- 자바 스레드 예제
- 이중for문 사용 안하기
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- 안드로이드 스튜디오 커스텀 다이얼로그
- Thread
- edittext 연결
- 안드로이드 디자인패턴
- 안드로이드 스튜디오 style
- Today
- Total
Sam Story
동기 , 비동기 (Synchronous , Asynchronous) 본문
1. 동기 , 비동기 란?
동기 (Synchronous) : 작업을 수행하고 그작업이 완료되고 순차적으로 작업을 진행하는 것
비동기 (Asynchronous) : 어떤 작업을 수행하지만 순서에 상관없이 계속해서 작업을 할 수 있는 방식
2. 두가지 방식의 장점과 단점
동기 방식으로 작업을 했을 때의 장단점
장점 : 설계가 매우 간단하고 직관적이다
단점 : 요청에 따른 결과가 반환되기 전까지는 다음 작업을 수행할 수 없고 기다려야 한다.
비동기 방식으로 작업을 했을 때의 장단점
장점 : 요청에 따른 결과가 반환되는 시간동안 다른 작업을 수행할 수 있다.
단점 : 동기식보다 설계가 복잡하고 논증적이다.
3. 비동기가 필요한 이유
애플리케이션이 실행되면 메인 액티비티가 메모리에 로드되고
메인 스레드를 포함한 프로세스가 생성 된다.
메인 스레드에서 시간이 걸리는 작업을 실행하면 ANR이 발생한다
* ANR : Application Not Responding
즉 안드로이드에서는 메인 스레드에서의 작업이 가장 중요하고
원활한 작업을 위해서는 비동기 방식이 필요하다.
지금까지 작업하면서 사용한 비동기 방식의 대표적인 예로는
클라이언트에서 서버로 통신을 할때 주로 비동기 방식으로 처리가 된다
서버에 응답을 요청하고 결과를 반환 받는데까지 걸리는 시간이 길기 때문에
메인 스레드에서 진행하는것이 아닌 비동기방식으로 별도의 작업으로 처리를 해준다.
사실 내용만 보면 비동기와 멀티스레드 방식이 같은 뜻이 아닌가? 라는 생각을 했었다.
관련된 내용들을 찾아보면 같은 뜻은 아니다.
하지만 개념적으로 혼동되는 부분들이 많다.
나중에 동기,비동기,스레드 세가지에 관련된 내용들을 확실히 개념을 잡고 포스팅 해보겠다.

'개발지식' 카테고리의 다른 글
엔진엑스 (NGINX) (0) | 2024.05.08 |
---|---|
아파치 (Apache) (1) | 2024.05.01 |
싱글스레드 , 멀티스레드 (Single Thread , Multi Thread) (0) | 2024.04.17 |
디자인 패턴 (Design Pattern) (0) | 2024.04.14 |
AAC (Android Architecture Component) (0) | 2024.03.30 |