코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (394)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (4)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • CentOS
  • javascript
  • python
  • Android
  • Spring
  • jsp
  • r
  • 자바스크립트
  • oracle
  • Java
  • 파이썬
  • linux

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

[Android] Thread
programming/android

[Android] Thread

2018. 6. 24. 18:21
반응형

6. Thread

 

6.1 Thread

6.1.1 멀티 스레드(Multi Thread)

한번에 여러 개의 작업을 동시에 처리할 수 있음

 

6.1.2 안드로이드의 멀티 스레드

리눅스: 멀티 스레드 운영체제
자바: 멀티 스레드 지원

 

6.1.3 스레드를 생성하는 두 가지 방법

  1. Thread() 클래스를 extends 하는 방법
  2. Thread(Runnable runnable)

 

6.1.4 스레드는 고유의 메모리 스택을 가지며 메인 스레드와는 별도로 CPU 시간을 할당 받아 실행

 

6.1.5 스레드에서 할 작업은 run() 안에 작성

 

6.1.6 start()를 호출하면 run()이 실행됨

 

 

6.2 핸들러(Handler)

6.2.1 핸들러를 생성하면 내부적으로 별도의 스레드가 생성됨

 

6.2.2 핸들러에서 내부적으로 생성한 스레드로 들어오는 메세지들을 순차적으로 처리함

 

6.2.3 메세지가 도착하면 handleMessage()가 자동 호출

/**
 * @param {Message} msg - 스레드 간의 통신 내용을 저장하는 객체
 * 단순한 신호나 명령뿐 아니라 복잡한 추가 정보도 전달받아야 하므로 여러 개의 필드를 가짐
 */
public void handleMessage(Message msg) {
	(...)
}

 

6.2.4 각 필드의 구체적인 값은 메세지마다 다르게 정의됨

 

6.2.5 메세지를 보내는 쪽에서 전달하고자 하는 내용을 Message 객체에 저장하여 핸들러로 전송할 때 다음 메서드를 사용

boolean Handler.sendEmptyMessage(int what);
boolean Handler.sendMessage(Message msg);
boolean Handler.sendMessageAtFrontOfQueue(Message msg);

 

 

6.3 실습예제

6.3.1 activity_main.xml

6.3.2 MainActivity.java

6.3.3 progress.xml

6.3.4 ProgressActivity.java

6.3.5 async.xml

반응형
저작자표시 비영리 변경금지
    'programming/android' 카테고리의 다른 글
    • [Android] 네트워크
    • [Android] 그래픽 처리
    • [Android] WebView
    • [Android] 파일 입출력
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바