자바 Concurrent 프로그래밍 소개

이승민·2022년 10월 18일

JAVA8

목록 보기
15/18

Concurrent 소프트웨어

  • 동시에 여러 작업을 할 수 있는 소프트웨어

  • 예) 웹 브라우저로 유튜브로 보면서 키보드로 문서에 타이핑을 할 수 있다.

    자바에서 지원하는 Concurrent 프로그래밍

  • 멀티프로세싱 (ProcessBuilder)

  • 멀티쓰레드

    자바 멀티쓰터드 프로그래밍

  • Thread / Runable

  • Thread 상속

public static void main(String[] args) {
        HelloThread helloThread = new HelloThread();
        helloThread.start();
        System.out.println("hello : " + Thread.currentThread().getName());
    }
    static class HelloThread extends Thread {
        @Override
        public void run() {
            System.out.println("world : " + Thread.currentThread().getName());
        } 
    } 

Runable 구현 또는 람다

Thread thread = new Thread(() -> System.out.println("world : " + Thread.currentThread().getName()));
        thread.start();
        System.out.println("hello : " + Thread.currentThread().getName());

쓰레드 주요 기능

  • 현재 쓰레드 멈춰두기 (sleep): 다른 쓰레득 ㅏ처리할 수 있도록 기회를 주지만 그렇다고 락을 놔주진 않는다. (잘못하면 데드락 걸릴 수도 있다.)
  • 다른 쓰레드 깨우기(interupt): 다른 쓰레드를 깨워서 interruptedExeption을 발생시킨다. 그 에러가 발생했을 때 할 일은 코딩하기 나름. 종료 시킬 수도 있고 계속 하던 일을 할 수 있있다.
  • 다른 쓰레드 기다리기(join): 다른 쓰레드가 끝날 때까지 기다린다.
profile
💻 끊임없이 성장하는 백엔드 개발자 💻

0개의 댓글