ENFJ 비전공자 개발스터디

자바 Java 스레드 thread 본문

Java

자바 Java 스레드 thread

madb 2021. 12. 13. 10:10
반응형

Main thread in Java

자바 Java 스레드 thread 

하나의 작업단위이다. = task => 동시 실행에 필요 

멀티스레딩 (multu- threading) - 여러 스레드를 동시에 실행= 운영프로그램을 실행하는 프로세스 

 

원론적인 thread 내용에서 자바쪽으로 집중해서 볼 필요가 있음.

자바에서의 스레드라 함은 run() 메소드를 구현하는 것이다. = jvm이 run() 메소드 호출.

Creating own class which is extending to parent 

Thread class Implementing the Runnable interface.

 

하나의 jvm실행  ( 메모리영역)은 하나의 자바 응용프로그램 app만 실행 

자바 언어는 단일 상속만 지원. 

 

 

thread도 블럭이다.

 

 

Thread 클래스 - 생성기능 (run 메소드), 제어기능 있음  (나머지) 

Runnable interface (추상적 클래스) - 제어기능 x, 그렇기 때문에 thread 클래스가 필요  (코딩할때 주의!) 

thread 메소드 - 기능 

 

Thread생성자 = Thread 생성하는 방법 = new하는 방법 

thread(), thread(Runnable target), thread(String name), thread(Runnable target, String name) 

Thread() - default생성자 Allocates a new Thread object

Thread(Runnable target) - Runnable한 놈들(=implent되었고, overriding한놈) 을 받아서 thread 생성

 

void run() {코드 x} 코드는 없고 중괄호는 있다. 즉 강제적 overriding하지 않는다. 코드가 없기 때문에 기능이 없다. 스레드 기능이 없다.

void start() 생성해놓은 run()스레드를 실행을 시작하도록 요청, start해놨다고 해서 곧바로 실행되는 것은 아님.

void interrupt() 방해하다 

static void yield() 다른 스레드에게 실행을 양보한다 

void join() 연결 

스레드 정보 추출 -> long getId(), String getName(), int getPriority(), void setPriority(int n), Thread.State getState()

long getId() 스레드 구분자 (long)

String getName() 스레드 이름 반환

int getPriority() 우선순위 추출 

void setPriority(int n) 우선순위 1-10까지 정수로 셋팅가능 

Thread.State getState() 스레드의 현재 상태를 가지고 오는 것  

static void sleep(long mills) 1/1000 초 자라 static Thread currentThread() 현재 실행중인 스레드 반환 

 


 

스스로 종료는 =>> run() 메소드가 종료 (return) 되면 스레드 Thread 도 종료

강제종료 interrupt(), 타 스레드에서 강제종료될 수 있다. 

extends 하지말고 interface 사용 

 

 


파라미터 = 받는 놈

void = 리턴하는 값이 없다.

메소드를 종료하는 명령 => return  (반환하고 메소드 종료하는 기능) - 반환값이 없을 경우 void종료 

상속받으면 생성, 제어기능 받음.

 

메모리를 할당받아 실행 중인 프로그램을 프로세스

프로세스 내의 명령어 블록으로 시작점과 종료점을 가진다. 실행중에 멈출 수 있으며 동시에 수행 가능하다.  

어떠한 프로그램내에서 특히 프로세스 내에서 실행되는 흐름의 단위.

 

 

반응형