본문 바로가기
My Image
반응형

멀티스레드4

[Java] multi thread 구현 02 멀티스레드 구현 2번째 시간 일전에 스레드를 만드는 방법 2가지가 있다고 소개했었다. 1. java.lang.thread 클래스를 직접 객체화해서 생성 2. Thread를 상속받아 하위클래스에서 구현하는 방법. 오늘은 두번째 방법인 작업스레드가 Runnable 인터페이스를 구현시켜 만든 Task(작업스레드가 작업할 일)을 따로 구현하지 않고 Thread를 상속받아 하위클래스에서 run()메서드를 오버라이딩해서 구현하는 방법을 소개한다. 간단하다. 아래 코드를 보자. MultiThreadImplement_02 패키지를 보면 WokerThread 클래스는 Thread를 상속받아 run()메서드를 오버라이딩해서 구현했다. package MultiThreadImplement_02; public class Wor.. 2017. 7. 2.
[Java] multi thread 구현 01 우선 멀티스레드가 필요한 경우는 다수의 작업을 병렬로 처리하기 위해서이다. 예를 들어... 메인스레드는 프로그램시작을 담당하고 작업스레드1은 네트워킹 작업스레드2는 드로잉을 처리를 해야하는 경우가 그렇다.. Java에서 멀티스레드를 구현하는 방법에 있어 2가지 방법이 존재한다. 1. java.lang.thread 클래스를 직접 객체화 해서 생성한다. 2. Thread를 상속해서 하위클래스를 만들어 생성한다. 우선 첫번째 java.lang.thread클래스를 직접 객체화해서 생성하는 방법을 알아보자. 1. java.lang.thread 클래스를 직접 객체화 해서 생성한다. java.lang.Thread 클래스로부터 작업 스레드 객체를 직접 생성하려면, 다음과 같이 Runnable을 매개값으로 갖는 생성자를.. 2017. 6. 29.
[Java] 멀티스레드 개념 이번 시간에는 "멀티스레드 개념"을 알아보자 우선 프로세스와 스레드를 이해하고 넘어가야한다. 운영체제는 실행 중인 하나의 어플리케이션을 "프로세스"라고 부른다. 사용자가 어플리케이션을 실행하면 운영체제로부터 필요한 메모리를 할당맏아 코드를 실행한다. 이것이 바로 프로세스다. 또 하나의 어플리케이션은 2개이상의 프로세스를 가질 수 있다. 예를 들어 chrome이라는 어플리케이션을 더블클릭을 2번하면, chrome이라는 exe 프로세스가 2개 생긴다. 또 "멀티태스킹"이란 두가지 이상의 일을 동시에 처리하는 것을 말한다. (결국 멀티스레드는 멀티태스킹을 하기 위함이다!) 운영체제에서 멀티태스킹을 지원하기 위해 CPU및 메모리자원을 각 프로세스에서 적절히 할당시키고 병렬 실행을 시킨다. 예를 들어 노래를 들으.. 2017. 6. 27.
[Java] HashTable, Hashmap, ConCurrentHashMap 차이 HashTable, HashMap, conCurrentHashMap 차이 우선 아래 글을 쭈욱 읽으면 끝난다....나보다 정말 잘 정리해논 글들이기 때문에.... *퍼온 글Hashtable 의 모든 Data 변경 매소드는 syncronized 로 선언되어있습니다.즉 매소드 호출 전 쓰레드간 동기화 락을 통해 멀티 쓰레드 환경에서 data의 무결성을 보장해줍니다. 반대로 HashMap 은 그런 선언이 없기 때문에 멀티 쓰레드에서 여러 쓰레드가 동시에 객체의data 를 조작하는 경우 data가 깨져버리고 심각한 오류가 발생할 수 있습니다. 다만 이 동기화 락이 매우 느린 동작이기때문에 Hashtable 보다 HashMap 이 훨씬 빠릅니다.Map 객체가 단일 쓰레드에서만 쓰일때는 HashMap을 사용해야합니.. 2017. 6. 18.
반응형