쓰레드( Thread ) #1
쓰레드( Thread ) #1
쓰레드란 프로세스의 작업을 처리하는 '일꾼'같은 개념이다. 프로세스는 프로그램을 수행하기 위해 필요한 데이터와 메모리, 쓰레드로 구성되어 있으며, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다.
Java에서 쓰레드를 구현하는 방법은 2가지다.
1. Thread클래스를 상속받는 방법
2. Runnable인터페이스를 구현하는 방법
일반적으로 Runnable인터페이스를 구현하는 방법을 많이 사용한다. 아무래도 클래스를 직접적으로 상속받는 것보단, 인터페이스를 구현하는 편이 상대적으로 유연한 관계를 만들 수 있고, Thread클래스를 상속받게되면 다른 클래스를 상속받을 수 없기 때문이다.
class ThreadEx { public static void main(String args[]) { ThreadEx_1 t1 = new ThreadEx_1(); Runnable r = new ThreadEx_2(); Thread t2 = new Thread(r); // Thread(Runnable r) t1.start(); // t1쓰레드 전용 call stack을 생성한 후, run() 실행 t2.start(); } } class ThreadEx_1 extends Thread { public void run() { for (int i=0; i<5; i++) System.out.println(getName()); // Thread클래스의 인스턴스메서드 } } class ThreadEx_2 implements Runnable { public void run() { for (int i=0; i<5; i++) { // Thread.currentThread()는 현재 실행중인 쓰레드의 참조값을 반환한다. System.out.println(Thread.currentThread().getName()); } } }
'Programming > Java' 카테고리의 다른 글
[Java] SLF4J 라이브러리 - 추상 Logging Framework (0) | 2019.12.24 |
---|---|
[Java] Date 클래스와 SimpleDateFormat 클래스 (0) | 2019.12.02 |
[Java] java.util.logging - 네이티브 로깅 라이브러리 (0) | 2019.11.21 |
[Java] 익명 클래스 (Anonymous Class) (0) | 2019.09.30 |
[Java] 자바 프로그램 콘솔 실행 ( execute with console ) (0) | 2019.01.22 |
댓글
이 글 공유하기
다른 글
-
[Java] Date 클래스와 SimpleDateFormat 클래스
[Java] Date 클래스와 SimpleDateFormat 클래스
2019.12.02Date 클래스와 SimpleDateFormat 클래스 Java는 날짜를 다루기 위한 Date 클래스와 날짜 형식을 포맷팅할 수 있는 SimpleDateFormat 클래스를 제공한다. 참고로 Java8에서 기존의 Date 클래스의 문제점을 고친 LocalDate 클래스를 지원한다. import java.util.Date import java.text.SimpleDateFormat class MainEntry { public static void main(String[] args) { Date date = new Date(); System.out.println("Date 객체 출력 : " + date); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(… -
[Java] java.util.logging - 네이티브 로깅 라이브러리
[Java] java.util.logging - 네이티브 로깅 라이브러리
2019.11.21java.util.logging - 네이티브 로깅 라이브러리 로깅 라이브러리는 콘솔에 로그를 어떤 식으로 출력할 지 방법을 제공한다. ( 로그를 파일로 저장할 수도 있음 ) 근데 이거 잘 안씀. 과거에는 Log4J를 많이 사용했고, 최근에는 그 후속버전인 Logback이 많이 사용되는 추세. 사용 예) import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; public class MainEntry { private static fianl Logger logger = Logger.getLogger(MainEntry.class.getName()); private FileHandle… -
[Java] 익명 클래스 (Anonymous Class)
[Java] 익명 클래스 (Anonymous Class)
2019.09.30익명 클래스 (Anonymous Class) 안드로이드 프로그래밍을 하다가 이벤트 리스너 매개변수로 익명 클래스를 넘기는 부분을 보고 헷갈려서 정리해둔다. 익명 클래스는 1회용 자식 클래스다. 예를 들어 다음의 클래스가 있다고 가정하자. public class Person { void whoAmI() { System.out.println("Person 객체"); } } 이제 위의 클래스를 상속받아 HongGilDong이라는 자식 클래스를 만들고 싶다면 상속받아 사용하면된다. public class HongGilDong { @Override public void whoAmI() { System.out.println("HongGilDong 객체"); } } 근데 만약 Person 클래스를 상속받아 사용해야할… -
[Java] 자바 프로그램 콘솔 실행 ( execute with console )
[Java] 자바 프로그램 콘솔 실행 ( execute with console )
2019.01.22자바프로그램 콘솔 실행 ( execute with console ) 1. 어느 경로에서든 java 명령어를 사용하기위해 JDK경로를 JAVA_HOME 환경변수로 등록한다.2. 자바프로그램(자바 프로젝트디렉토리) 경로로 이동한다.3. .java파일을 컴파일 후 .class파일을 모아둔 bin디렉토리로 이동한다.3. java 패키지명.파일명 [옵션] 형태로 작성한다.
댓글을 사용할 수 없습니다.