프로세스와 쓰레드 ( process & thread ) 프로그램 à 실행 à 프로세스 프로그램 : 실행 가능한 파일 (HDD) 프로세스 : 실행 중인 프로그램(메모리) 프로세스 : 자원 ( resources)과 쓰레드로 구성 쓰레드 : 프로세스 내에서 실제 작업을 수행 하는 것 , 모든 프로세스는 하나 이상의 쓰레드 보유 Ex ) 프로세스 : 쓰레드 = 공장 : 일꾼 싱글 쓰레드 프로세스 : 자원 + 쓰레드 멀티 쓰레드 프로세스 : 자원 + 쓰레드 + 쓰레드 + 쓰레드 멀티프로세스 Vs 멀티쓰레드 1. 하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다. 멀티쓰레드의 장단점 1. 많은 프로그램들이 멀티쓰레드로 작성되어 있다. 그러나 멀티쓰레드 프로그래밍이 ..
TreeMap 1. 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다. 2. Map의 장점인 빠른 검색과 Tree의 장점인 정렬과 범위검색의 장점을 모두 갖고 있다. 3. 이진검색트리처럼 , 데이터를 저장할 때 정렬하기 때문에 저장시간이 길다는 단점이 있다. 4. 정렬된 상태로 데이터를 조회하는 경우가 빈번하다면 , 데이터를 조회할 때 정렬해야 하는 hashMap 보다는 이미 정렬된 상태로 저장되어 있는 TreeMap이 빠른 조회결과를 얻을 수 있다. 5. 주로 HashMap을 사용하고 , 정렬이나 범위검색이 필요한 경우에만 TreeMap을 사용하는 것이 좋다 . * TreeMap의 메서드의 종류 *
해싱 키를 이용해서 해시테이블로부터 데이터를 가져오는 과정 순서대로 알아보자 . 1. 키를 이용해서 해시함수를 호출한다. 2. 해시함수의 호출결과인 해시코드에 대응하는 배열에 저장된 링크드리스를 찾는다 3. 링크드리스트에서 키와 일치하는 데이터를 찾는다. #해시함수는 같은 키값에 대해 항상 같은 해시코드를 반환해야한다. #서로 다른 키값일지라도 같은 값의 해시코드를 반환할 수 있다.
해싱 ( hashing ) 1. 해시함수 (hash function)를 이용해서 해시테이블 (hash table)에 저장하고 검색하는 기법 2. 해싱에 사용되는 자료구조는 배열과 링크드리스트가 조합된 형태이다
Hashtable 과 HashMap 1. HashMap은 Hashtable의 신버젼이며 , Hashtable과 달리 HashMap은 동기화처리가 되어 있지 않다 . 가능하면 Hashteble 보다는 HashMap을 사용하자 2. HashMap은 해싱(hashing)기법을 사용해서 데이터를 저장하기 때문에 많은 양의 데이터를 검색할 때 성능이 뛰어나다. 3. HashMap은 Map인터페이스를 구현하였으며 , 데이터를 키와 값의 쌍으로 저장한다. * HashMap()의 메서드의 종류 *