[JAVA] Thread

2023. 10. 19. 10:28·Programming Language/JAVA

프로세스(Process)란?

단순히 실행 중인 프로그램

  • 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당 받아 실행 중인 것
  • 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성됨

스레드(Thread)란?

프로세스 내에서 실제로 작업을 수행하는 주체

  • 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행
  • 두 개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스라고 함

스레드의 생성과 실행

  1. Runnable 인터페이스를 구현하는 방법
  2. public class Test01 implements Runnable { @Override public void run() { // 스레드 실행코드 } }
  3. Thread 클래스를 상속받는 방법
  4. public class Test01 extends Thread { @Override public void run() { // 스레드 실행코드 } }

스레드 메소드

static void sleep(long msec)  msec에 지정된 밀리초 동안 대기
String getName() 스레드의 이름을 s로 설정
void setName(String s) 스레드의 이름을 s로 설정
void start() 스레드를 시작, run() 메소드 호출
void join() throws InterruptedException 스레드가 끝날 때까지 대기
void run() 스레드가 실행할 부분 기술(오버라이딩 사용)
void suspend() 스레드가 일시정지 resume()에 의해 다시 시작 가능
void resume() 일시 정지된 스레드를 다시 시작
setPriority()/getPriority() 우선순위
  • Thread 클래스 상속
    class MyThread extends Thread{
    @Override
    public void run() {
        int i;
        for(i = 0; i<200; i++) {
            System.out.print(i + "\t");
        }
    }
    }
    public class ThreadTest {
    public static void main(String[] args) {
        System.out.println(Thread.currentThread());
        MyThread th1 = new MyThread();
        th1.start();
        MyThread th2 = new MyThread();
        th2.start();
    }
    }
  • Runnable 인터페이스 구현
    class MyThread2 implements Runnable{
    public void run(){
        int i;
        for(i=0; i<200; i++){
            System.out.print(i + "\t");
        }
    }
    }
    public class ThreadTest2 {
    public static void main(String[] args) {
        System.out.println("main start");
        MyThread2 mth = new MyThread2();
        Thread th1 = new Thread(mth);
        th1.start();
        Thread th2 = new Thread(new MyThread2());
        th2.start();
        System.out.println("main end");
    }
    }
저작자표시 비영리 변경금지 (새창열림)

'Programming Language > JAVA' 카테고리의 다른 글

[JAVA] 인스턴스 메서드  (0) 2023.10.19
[JAVA] 오버로딩 & 오버라이딩  (0) 2023.10.19
[JAVA] String 메소드  (0) 2023.10.19
[JAVA] 재귀함수  (0) 2023.10.19
[JAVA] 데이터 타입 크기  (0) 2023.10.19
'Programming Language/JAVA' 카테고리의 다른 글
  • [JAVA] 인스턴스 메서드
  • [JAVA] 오버로딩 & 오버라이딩
  • [JAVA] String 메소드
  • [JAVA] 재귀함수
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    backjoon
    스프링 부트 쇼핑몰 프로젝트 with JPA
    프로그래머스
    pcce 기출문제
    spring
    시큐리티
    postgresql
    자바
    Flutter
    DB
    python
    리눅스마스터 1급
    springboot
    스프링
    데이터베이스
    baekjoon
    데이터
    programmers
    백준
    CS지식
    CS
    JPA
    Java
    플러터
    Oracle
    리눅스
    Linux
    리눅스마스터
    Spring Security
    스프링부트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[JAVA] Thread
상단으로

티스토리툴바