![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/8XN7x/btqA2V4ZCKX/IRVRVbejJ04I0tHUGWnjZ1/img.png)
글에 들어가기 전에 comparison sort 중에 시간복잡도가 O(nlogn)으로 알려진 Heap, Merge, Quick sort 중에 평균적으로 quick sort가 빠르기에 아래의 Insertion sort와 비교대상에 넣게 되었음을 인지하고 읽어주세요... 위의 내용에 대해서는 빠른 시일 내에 다른 글을 작성해보도록 하겠습니다. 시작하겠습니다..!! 평소에 가장 비교 sort 중에 O(n2) 알고리즘은 시간복잡도 상으로 느리기에 잘 쓰지 않는다고 생각하게 됩니다. 하지만 시간복잡도는 n이 점근적으로 무한대에 접근할 때를 이야기하는 것이기에 n의 크기가 작을 때는 시간복잡도 앞에 상수를 잘 고려해야 합니다. 이 글에서는 O(n2)알고리즘 중 n이 작을 때 Insertion sort가 왜 쓰이는지..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dsVz7R/btqARYtpxuq/G1JwDoUtl08CF1AW37k230/img.png)
이번 글의 목적 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
- Thread-safe
- divide and conquer
- Cache coherence
- 운동
- 건강
- synchronized
- java
- computer science
- locality of reference
- Insertion Sort
- 운영체제
- 컴퓨터구조
- codeforce
- 개발자
- math
- Quick Sort
- JVM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |