본문 바로가기
Efficient Android Threading #7 Executor 프레임워크를 통한 스레드 실행 제어 Efficient Android Threading #7 Executor 프레임워크를 통한 스레드 실행 제어 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.9.1. Executor -Executor 는 interface 로 void execute(Runnable command); 하나의 함수를 갖는다.단순하지만 강력하다. 이는 테스크를 만드는 것과 실행 사이에 분리를 확실하게 해주기 때문에 기본 Thread 인터페이스보다 더 자주 사용된다. -public class SimpleExecutor implements Executor { @Override public void execute(Runnable runnable){ new.. 2018. 3. 23.
[Java Concurrency] 중단 및 종료 #1 [Java Concurrency] 중단 및 종료 #1 - 작업이나 스레드를 안전하고 빠르고 안정적으로 멈추게 하는 것은 어려운 일이다. 더군다나 자바에는 스레드가 작업을 실행하고 있을 때 강제로 멈추도록 하는 방법이 없다. 대신 인터럽트(interrupt)라는 방법을 사용할 수 있게 되어 있는데, 인터럽트는 특정 스레드에게 작업을 멈춰달라고 요청하는 형태이다. 실제 상황에서 특정 스레드나 서비스를 "즉시" 멈춰야 할 경우는 거의 없고, 강제로 종료하면 공유되어 있는 여러 가지 상태가 비정상적인 상태에 놓일 수 있기 때문에 스레드 간의 협력을 통한 접근 방법이 올바르다. 다시 말해, 작업이나 서비스를 실행하는 부분의 코드를 작성할 때 멈춰달라는 요청을 받으면 진행 중이던 작업을 모두 정리한 다음 종료하도록.. 2017. 4. 25.
[Java Concurrency] 작업 실행 [Java Concurrency] 작업 실행 - 앱이 해야 할 일을 "작업"이라는 단위로 분할하면 프로그램의 구조를 간결하게 잡을 수 있고, 트랜잭션의 범위를 지정함으로써 오류에 효과적으로 대응할 수 있고, 작업 실행 부분의 병렬성을 자연스럽게 극대화 할 수 있다. 6.1. 스레드에서 작업 실행 - 프로그램에서 일어나는 일을 작업이라는 단위로 재구성하고자 한다면 가장 먼저 해야 할 일은 작업의 범위를 어디까지로 할 것인지 정하는 일이다. 원론적으로 보자면 작업은 완전히 독립적인 동작을 말한다. 독립성이 갖춰져 있어야 병렬성을 보장할 수 있다. 작업을 스케쥴링하거나 부하 분산(load balancing)을 하고자 할 때 폭넓은 유연성을 얻으려면 각 작업이 앱의 전체적인 업무 내용 가운데 충분히 작은 부분을.. 2017. 4. 24.
[Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. [Effective Java] 스레드 그룹보다는 실행자와 작업을 사용하자. - 자바 1.5 배포판 이후에 java.util.concurrent 패키지가 추가되었다. 여기에는 실행자 프레임워크(Executor Framework) 가 포함되어 있다. 이 녀석을 사용하면 Work queue 를 쉽게 관리할 수 있다. ExecutorService executor = Executors.newSingleThreadExecutor();executor.execute(runnable);executor.shutdown(); // 추가된 task 들의 실행은 보장한다. shutdownNow() 도 있다. 위와 같은 간단한 코드로 쉽게 queue 를 만들어 실행시킬 수 있고, shutdown 시킬 수 있다. - Executo.. 2017. 3. 10.
[Java] Executor : Java Concurrency API [Java] Executor : Java Concurrency API - Executor Interface 제공된 Runnable 을 실행하는 객체가 구현해야 할 인터페이스. execute( Runnable ) 을 구현해야 한다. public interface Executor {void execute(Runnable command);} - ExecutorService interface Executor 의 라이프 사이클을 관리할 수 있는 기능을 제공한다. 추가로 Runnable 뿐만 아니라 Callable 도 작업할 수 있다. void shutdown() 이미 Executor 에 제공된 작업은 실행되지만, 새로운 작업은 수용하지 않는다. List shutdownNow() 현재 실행중인 모든 작업을 중지시키.. 2017. 3. 8.
MYSQL TUtorial #1 웹 데이터베이스 만들기 MYSQL TUtorial #1 웹 데이터베이스 만들기 MYSQL 시작 MySQL 사용을 위해서는 다음의 과정을 완료해야 한다. 1. 웹 서버에 MySQL 설치를 마쳐야 한다. 파일 설치 MySQL 실행한 사용자 설정 경로(path) 설정 필요하면 mysql_install_db 를 실행 루트 비밀번호 설정 필요없는 사용자와 테스트 DB 등을 삭제 MySQL 서버 돌리고 자동적으로 실행되도록 설정 사용자 설정 : GRANT 명령어 Global, Database, Table, Column 4단계로 권한 조정이 필요하다. GRANT privileges [columns] ON itemTO user_name [IDENTIFIED BY 'password'][REQUIRE ssl_options][WITH [GRANT.. 2014. 1. 21.
[윈도우] 컴퓨터 타이머 자동 종료하는 방법. 곰플레이어나 다른 동영상 플레이어들로 동영상을 보면,메뉴 중에 "파일 재생이 끝나면 컴퓨터 종료", 혹은 "목록 재생이 끝나면 컴퓨터 종료" 와 같은 메뉴들이 있어서 영상을 보면서 자기 좋다. 그런데 요즘은 유투브로 쇼미더머니를 보고 있는데,쇼미더머니도 마찬가지로 보다가 자고 싶어서 윈도우 자체에 timer 를 두고 컴퓨터를 자동 종료하는 방법이 없나 찾아보았다. 빙고!! 있다. shutdown 이라는 command 를 입력하면 되는 것인데, 다음과 같이 입력하면 된다. c:\> shutdown -s -t 3600 위와 같이 입력하면, 3600초 ( 1시간 ) 후에 컴퓨터를 종료시킨다는 의미가 된다. 저 명령어를 어디서 입력하느냐? 시작버튼을 눌러 검색되는 부분에서 바로 저것을 입력해도 되고, 시작버튼을.. 2013. 7. 18.
반응형