챕터 13 스레드 Thread를 읽으며 기록해보았습니다 : ) 싱글스레드와 멀티스레드 하나의 스레드로 두개의 작업을 수행한 시간과 두개의 스레드로 두 개의 작업을 수행한 시간은 같다. 두개의 스레드로 작업할 때 싱글스레드보다 더 시간이 걸림 -> 스레드간 작업전환시간이 길어서 (컨텍스트 스위칭) 작업 전환시 현재 진행중인 작업의 상태, 다음에 실행해야할 위치 등의 정보를 저장하고 읽는 시간이 소요됨. 싱글 코어인 경우 두 작업이 겹치지 않음 멀티 스레드 수행시 두 작업이 겹치는 부분이 발생함. 그래서 화면이라는 작원을 놓고 경쟁함 두 스레드가 서로 다른 작업 사용시 싱글보다 멀티스레드가 더 효율적임 스레드의 우선순위 스레드는 우선순위라는 속성을 가짐(멤버변수) 우선순위에 따라 작업시간이 달라짐 빠르게 반..
Computer Engineering
자바의 정석 2회독차에 기록하고 싶은 부분만 기록하기! 챕터 11 : 컬렉션 프레임 웍 데이터 군을 저장하는 클래스들을 표준화한 설계 컬렉션은 다수의 데이터, 데이터 그룹 프레임웍은 표준화된 프로그래밍 방식 인터페이스 종류 1. list 순서가 있는 데이터 집합, 데이터 중복을 허용 2. Set 순서를 유지하지 않는 데이터 집합, 데이터 중복 허용 x 3. Map 키와 값의 쌍으로 이루어진 데이터 집합, 순서 유지 x, 키는 중복 허용 x, 값은 중복 허용 ArrayList 기존의 Vector을 개선 Object 배열을 이용해 데이터를 순착적으로 저장 배열에 더이상 저장할 공간이 없으면 큰 새로운 배열 생성후 복사한 뒤 저장 list2에서 list1과 공통되는 요소들을 찾아 삭제할때, 변수 i를 증가시켜..
자바 초짜로써.. Scanner밖에 모르다가 BufferdReader의 존재를 알게되어 정리해보는 글. 버퍼의 입출력 BufferdReader는 Scanner와 유사하며 BufferedWriter는 출력과 유사하다. 다른 점이 있다면 입력된 데이터 버퍼를 거쳐 전달이 되므로 데이터 처리 효율성이 높다. 버퍼를 거치면 한단계가 늘어나는건데 왜 빠를까? 하드디스크는 원래 속도가 엄청 느리기에 외부 입력장치를 통한 입출력은 상당히 시간이 오래 걸린다. 그래서 키보드가 눌릴때마다 문자를 이동시키는것보다는 중간에 메모리버퍼에 저장하여 한번에 이동시키는 것이 보다 효율적이다. 즉 모아뒀다가 한번에 전송한다는 뜻 많은 양의 데이터를 처리할 때 속도 측면에서 유리하다. buffer : 데이터를 한 곳에서 다른 곳으로 ..
시작하기 앞서 NodeJS는 웹 서버가 아니라 자바스크립트 실행환경이라는 점을 인식하자. NodeJS로도 서버를 구성할 수 있다! 고 해야 맞는 말인 듯하다. ( 보통 프론트, 백을 구분하는데 NodeJS로는 둘 다 노드 내에서 구현 가능함.. 풀스택하기 참 쉽다..응.. ) NodeJS는 이벤트 기반, 논 블로킹 I/O모델을 사용하며 싱글스레드 방식을 채택했다. 이벤트 기반 동작, 싱글 스레드에 주목해서 정리할 것이다. 프로세스 운영체제로부터 자원을 할당받는 작업 단위 스레드 할당받은 자원을 이용하는 실행 단위 하나의 프로세스를 여러 스레드를 가지고 자원을 공유한다. 하나의 스레드는 한 번에 단 하나의 동작만 수행 가능하다. 그럼 자연스럽게 멀티스레드는 한번에 여러 가지 동작이 가능할 것이다. (스레드..