티스토리 뷰

Language/Android

[Android] Thread

Mr.SIM 2013. 4. 17. 18:36

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

Thread() : Thread()는 디폴트 생성자로 Thread객체를 생성한다.

Thread(Runnable runnable)


Thread 객체는 독립적으로 실행되는 실행흐름이 된다. Thread는 고유의 스택을 가지며, 기본 Thread와는 별도의 CPU시간을 할당받는다.


1. Thread상속받은 클래스를 이용해서 Thread시작

public class MainActivity extends Activity {
	int mCount = 0;
	TextView Count_tv;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Count_tv = (TextView) findViewById(R.id.Count);
		Button get = (Button) findViewById(R.id.get);

		get.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				Count_tv.setText("Count : " + mCount);
			}
		});

		ThreadTest thread = new ThreadTest();
		thread.setDaemon(true);
		thread.start();
	}

	class ThreadTest extends Thread {
		public void run() {
			for (int i = 0; i < 100; i++) {
				mCount++;
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					;
				}
			}
		}
	}
} 



2. Runnable을 인터페이스로 가지는 클래스를 이용해서 Thread시작
 public class MainActivity extends Activity {
	int mCount = 0;
	TextView Count_tv;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Count_tv = (TextView) findViewById(R.id.Count);
		Button get = (Button) findViewById(R.id.get);

		get.setOnClickListener(new Button.OnClickListener() {
			public void onClick(View v) {
				Count_tv.setText("Count : " + mCount);
			}
		});

		
		ThreadTest tt = new ThreadTest();
		Thread thread = new Thread(tt);
		thread.setDaemon(true);
		thread.start();

	}

	class ThreadTest implements Runnable {

		@Override
		public void run() {
			for (int i = 0; i < 100; i++) {
				mCount++;
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					;
				}
			}
		}

	}
}


Thread는 바로 사용하는 방법이 간편한데 자바는 다중 상속을 지원하지 않기때문에 Runnable인터페이스를 제공한다.

'Language > Android' 카테고리의 다른 글

[Android] 탭 구현하기  (0) 2013.04.23
[Android] 액티비티 생애주기  (0) 2013.04.19
[Android] 인터넷상태확인  (0) 2013.04.16
[Android] 해상도구하기  (0) 2013.04.16
[Android] 로딩화면구현하기  (0) 2013.04.16
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday