글에 들어가기 전에 comparison sort 중에 시간복잡도가 O(nlogn)으로 알려진 Heap, Merge, Quick sort 중에 평균적으로 quick sort가 빠르기에 아래의 Insertion sort와 비교대상에 넣게 되었음을 인지하고 읽어주세요... 위의 내용에 대해서는 빠른 시일 내에 다른 글을 작성해보도록 하겠습니다. 시작하겠습니다..!! 평소에 가장 비교 sort 중에 O(n2) 알고리즘은 시간복잡도 상으로 느리기에 잘 쓰지 않는다고 생각하게 됩니다. 하지만 시간복잡도는 n이 점근적으로 무한대에 접근할 때를 이야기하는 것이기에 n의 크기가 작을 때는 시간복잡도 앞에 상수를 잘 고려해야 합니다. 이 글에서는 O(n2)알고리즘 중 n이 작을 때 Insertion sort가 왜 쓰이는지..
중요하다. 마치 비시즌기에 운동선수들이 체력 관리를 통해 시즌을 준비하는 것처럼 개발자도 온전히 자신의 일을 하려면 꾸준한 운동은 필수인 것 같다. 사람은 겪어봐야 안다고 했던가.. 손목, 목, 어깨등이 뻐근하고 아프면서부터 이상증세를 감지했고, 나의 몸이 '잘못된 방향으로 가고 있구나'를 깨달았다. 요즘은 매일매일 운동으로 하루를 시작하고 있다.. 뿐만 아니라 공부나 개발을 할 때 틈틈히 스트레칭으로 손목과 어깨 등을 풀어주면서 많은 노력을 기울이고 있다. 이렇게 하니 조금씩 괜찮아지면서 꾸준히 이 생활을 이어나가야겠다고 생각했다. 조금 괜찮다고 그만하지말고, 꾸준히 운동하도록 해야겠다.
이번 글의 목적 thread, multithreading, critical section에 대한 어느 정도 이해가 있다는 가정하에 Thread-Safe를 JVM과 하드웨어 아키텍처 관점에서 풀어내보려고 합니다. Thread Thread는 [그림 1]과 같이 자신과 같은 프로세스 내부에 있는 Thread들과 heap, data, code 영역등을 공유합니다. stack 영역은 각 thread별로 다른 영역을 가지게 됩니다. 따라서, multithreading을 사용할 때는 heap, data, code 영역과 같은 공유자원의 접근에 유의하여 코딩을 진행해야 합니다. JVM 메모리 구조 JVM 메모리 구조는 위와 조금 다르게 아래와 같이 이루어져있습니다. [그림 2]은 원래 JVM 메모리 구조 모습이고, [..
- Total
- Today
- Yesterday
- JVM
- 건강
- 운동
- 개발자
- locality of reference
- Quick Sort
- Insertion Sort
- 컴퓨터구조
- codeforce
- computer science
- Cache coherence
- synchronized
- Thread-safe
- math
- 운영체제
- divide and conquer
- java
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |