mutex 기반으로 작성하고, condition variable로 단점을 보완해 본다mutex 기반틀#include templateclass LockStack{public: LockStack() {} LockStack(const LockStack&) = delete; LockStack& operator=(const LockStack&) = delete; private: stack _stack; mutex _mutex;};push 연산 void Push(T value) { lock_guard lock(_mutex); _stack.push(std::move(value)); }lock_guard 이용cf) 이동이 가능한 것들은, move를 이용해서 빠른 연산 지원pop 연산고전적으로는 empty() 연..
Q.정렬 알고리듬은 실제 성능은 시간 복잡도 외에도 데이터의 정렬 상태, 실행 환경(하드웨어, OS) 등 다른 요인과도 관계가 있는 것 같다. 특히, 캐시 활용도에 대한 내용이 많이 언급되었는데, 캐시 활용에 유리한 알고리듬의 특성은 무엇인지 궁금하다.A.시간 복잡도는 가이드라인일 뿐이고 실무에서는 그보다는 다른 요인들이 더 큰 영향을 미친다. (아주 느린 시간 복잡도가 아니라는 가정)캐시 활용에 유리한 알고리즘의 특성은 크게 두 가지이다.지역성(locality): 캐시는 CPU가 자주 접근하는 데이터를 압도적으로 빠르게 가져올 수 있도록 설계된 메모리 계층이다. 캐시는 데이터를 블록 단위로 가져오기 때문에, 인접한 데이터에 연속적으로 접근할 때 캐시 히트율이 높아진다. 따라서 캐시 활용에 유리한 알고리..
신경망 기초신경망(neural network)은 신경세포(neuron)를 모델화한 계산소자인 인공신경(artificial neuron)을 조합한 것이다. 그렇면 가장 최소 단위인, 인공신경부터 접근해보자. 인공신경 모델인공신경은 뉴런소자 또는 뉴런 셀이라고도 불린다. 생물의 신경세포는 다른 여러 신경세포로부터 신호를 받아 세포안에서 처리를 시행한 다음, 출력 신호를 다른 신경 세포로 보낸다. 인공 신경은 이 움직임을 단순화하여 수학적으로 흉내 낸 계산소자이다. 그림 4-1. 인공신경의 구성입력값가중치문턱값전달함수(또는 출력함수 또는 활성화 함수)입력된 값 $ x_{i} $ 에, 입력마다 미리 정해진 상수 $ w_{i} $ 를 곱한다. 이 상수 $ w_{i} $ 는 가중치(weight)라 부른다.입력신호는..
들어가며"똒똒"한 IDE의 성능으로 언어 문법을 "흐릿하게" 외워도 코딩이 가능해졌다.솔직히, 자바는 Intellij를 쓰면 점(.)만 찍어도 프로그래밍 가능한 것 같다. (ㅎㅎ;;) 새로운 언어를 배울 때, 그 언어의 전문가가 되기 위해서는 우스갯소리로든 진지한 소리로든 아래의 이야기를 한 번쯤은 들어봤을 것이다.📝 "종이에 펜으로 코드를 작성할 수 있을 정도가 되어야 한다" 나는 그 의견에 동의한다. C/C++ 을 학습하고 있는데, 적용해 보기로 했다!요구사항확장자 유지(확장자 수정없이 바로 컴파일)를 하면서, 인텔리 센스가 모두 동작하지 않는 것이 내 요구사항이다. macbook 에서 메모장 환경은 신통치 못하다. (영어 첫글자의 자동 대문자 변환) vscode에서 마땅한 방법을 찾아서 소개한..
- Total
- Today
- Yesterday
- 이진탐색
- OOP
- tomcat11
- S4
- 엔티티 설계 주의점
- 톰캣11
- servlet
- 연관관계 편의 메서드
- generic swap
- 논문추천
- generic sort
- 개발 공부 자료
- JPA
- condition variable
- pocu
- thread
- PS
- reader-writer lock
- Spring MVC
- tree
- 객체 변조 방어
- Memory
- Java
- Dispatcher Servlet
- CPU
- core c++
- C
- sleep lock
- 백준
- S1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |