-
TCP와 UDP 차이점
네트워크 ·TCP와 UDP의 차이점은 아래와 같다
-
스레드 블로킹 VS 논블로킹 VS synchronous VS asyncronous
java ·각 개념들을 아래의 작업들로 예시를 들어보자면,
내 작업: 햄버거를 먹는다.
상대의 작업: 엄마의 잔소리를 듣는다.
상대의 결과: 청소 명령을 내린다. -
세마포어, 뮤택스
CS ·세마포어는 공유 자원 또는 임계구역에 접근 가능한 스레드 수를 설정하고 제한할 수 있다.
뮤택스는 공유 자원 또는 임계구역에 접근하는 스레드가 있는 동안 다른 스레드는 접근 할 수 없다. -
메인스레드와 데몬스레드의 차이점
java ·JVM이 메인스레드의 작업은 종료될때까지 기다려주지만, 데몬스레드의 작업은 종료될때까지 기다려주지 않는다.
-
NIO와 IO 차이점
java ·NIO와 IO의 차이점은 아래와 같다.
-
IO란?
java ·IO는 input output의 약자로 jvm 기준 텍스트나 파일을 읽어오면 input, 텍스트를 쓰거나 파일을 저장하면 output이다.
-
해쉬 충돌
java ·해쉬값 하나에 여러값이 존재하는 현상으로, 해쉬값이 유한하고, 입력값은 무한하기 때문에 생기는 문제다
해결방법으로는 폐쇄주소법(close addressing), 개방주소법(open addressing), separate chaining 기법등이 있다. -
컨텍스트 스위칭
CS ·문맥교환이라고 불리며,
작업중인 스레드가 다음에 작업할 스레드에게 정보를 넘겨주거나 다음 스레드의 정보를 불러오는 동안 생기는 시간을 의미한다. -
스레드와 프로세스 차이점
CS ·프로세스는 컴퓨터에서 연속적으로 사용되고 있는 프로그램이다, 프로그램은 컴퓨터에게 작업을 수행하기 위한 명령문이다. 스레드는 작업을 처리하기 위한 여러 흐름의 단위다.
-
synchronized란?
java ·synchronized는 자바 예약어로 동기화를 위해 사용한다.
동기화하는 이유는 스레드의 동시성 문제와 가시성 문제를 해결하기 위해서다.
동시성 문제는 스레드가 동시에 값을 수정할때 생기는 문제고, 가시성 문제는 실제 메모리에 있는 값과 캐싱해온 값이 각각의 스레드마다 다를때 생기는 문제다