Java- Concurrent 프로그래밍

2020. 9. 28. 12:41개인공부/java

14. 자바 Concurrent 프로그래밍 소개

Concurrent 소프트웨어
동시에여러작업을할수있는소프트웨어
)웹브라우저로유튜브를보면서키보드로문서에타이핑을할수있다.
)녹화를하면서인텔리J로코딩을하고워드에적어둔문서를보거나수정할수있다.

자바에서 지원하는 컨커런트 프로그래밍 멀티프로세싱 (ProcessBuilder)
멀티쓰레드

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

● Thread / Runnable 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());

} }

Runnable 구현 또는 람다

쓰레드 주요 기능

  • ●  현재 쓰레드 멈춰두기 (sleep): 다른 쓰레드가 처리할 수 있도록 기회를 주지만 그렇다고

    락을 놔주진 않는다. (잘못하면 데드락 걸릴 수 있겠죠.)

  • ●  다른 쓰레드 깨우기 (interupt): 다른 쓰레드를 깨워서 interruptedExeption을 발생 시킨다.

    그 에러가 발생했을 때 할 일은 코딩하기 나름. 종료 시킬 수도 있고 계속 하던 일 할 수도

    있고.

  • ●  다른 쓰레드 기다리기 (join): 다른 쓰레드가 끝날 때까지 기다린다.

    참고:

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

https://docs.oracle.com/javase/tutorial/essential/concurrency/
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#interrupt--

 

Thread (Java Platform SE 8 )

Allocates a new Thread object so that it has target as its run object, has the specified name as its name, and belongs to the thread group referred to by group, and has the specified stack size. This constructor is identical to Thread(ThreadGroup,Runnable,

docs.oracle.com

 

Lesson: Concurrency (The Java™ Tutorials > Essential Classes)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See JDK Release Notes for information about new fe

docs.oracle.com

 

 

'개인공부 > java' 카테고리의 다른 글

자바의 정석 - Chapter 01 자바를 시작하기 전에  (0) 2020.11.16
Java - Executors  (0) 2020.09.28
Java - Date와 Time Api  (0) 2020.09.27
JAVA - stream  (0) 2020.09.27
JAVA - 함수형 인터페이스  (0) 2020.09.26