안녕하세요 코딩초밥입니다 ㅇㅅㅇ😊❤💖
일을할때 한가지의 일이 주어진다면 하나의 일을 하면 되지만
일이 수없이 떨어졌을떄는 당연히 느려질수밖에 없죠
하지만 내 일을 동시에 도와주는 녀석이 있다면 어떨까요? 더욱 빨라지겠죠?
안드로이드에도 그런 녀석이 있는데요
바로 thread 입니다.
오늘은 간단히 thread의 기능을 써보면서 소개해보도록하겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="오래걸리는 작업(Thread 미사용)- ANR에러"
android:onClick="clickBtn"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="BUTTON"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="오래걸리는 작업(Thread 사용)"
android:onClick="clickBtn2"/>
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="0"
android:gravity="center"
android:textSize="30sp"
android:textStyle="bold"/>
</LinearLayout>
ui는 이렇게만 준비해 놓고 시작해볼께요
메인에는 tv까지 초기화를 시켜놓고
버튼에 기능을 추가해보겠습니다
Thread를 사용하지않은 그냥 버튼의 값입니다.
안에 thread의 sleep은 thread를 공식적으로 쓴것이아니라
컴퓨터가 너무 빠르기에 값이 바로 나와버려서 차이점을 보여주기위해 사용한것입니다.
자 thread를 제대로 써볼까요?
thread는 바로 쓰는 것이 아니라 thread를 상속받은 thread class를 따로!!!
만들어서 쓰는것입니다.
뜬금없이 배를 띄워서 물고기를 잡으러 간다고 예를 든다면.
내가 물고기를 잡고 회치고 매운탕끓이고 이것저것 할때
내가 고용한 쓰레드 아저씨는 무조건 노 만 져어주세요 하는거와 같다
내가 노를 안젓고 다른일을할때
쓰레드아저씨는 그것만 해줘도 충분히 도움이 되니까
저렇게 쓰레드 안에 코딩을 해놓는 것이 "노 만 져어주세요~"하는 것과 같다.
이해안간다면..그냥 쓰레드는 따로 일처리를 하는 녀석이구나 생각하면 된다
결과값을 보자.
Thread를 쓰지않은 버튼은 렉이걸렸다가
결과가 된값! 을보여주고
Thread를 쓴 버튼은
결과가 되는 과정을 값을 보여주게된다.
여기서 우리가 알수있는점은
thread를 써야 우리가 많은 작업을 실행시킬떄
동시에 작동시키는 일이 많다는 것이다.
이 계념을 비동기 방식이라고 일컷는다
'이과 > JAVA 안드로이드' 카테고리의 다른 글
[안드로이드]ViewPaPer (0) | 2021.04.30 |
---|---|
[안드로이드]UI/UX 디자인이란? (0) | 2021.04.27 |
[안드로이드]Thread2 (0) | 2021.04.27 |
[안드로이드]CompoundButton 활용 (2) | 2021.04.25 |
[안드로이드]Room (1) | 2021.04.25 |
댓글