일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jupyter lab
- 구조체
- git
- Unity
- Flutter
- C# delegate
- HTML
- github
- Houdini
- Python
- 다트 언어
- docker
- vim
- Algorithm
- c#
- dart 언어
- 깃
- 플러터
- C언어 포인터
- c# winform
- 포인터
- jupyter
- c# 추상 클래스
- gitlab
- Data Structure
- 유니티
- c# 윈폼
- 도커
- C++
- c언어
- Today
- Total
목록pthread (2)
nomad-programmer
뮤텍스는 공유 데이터를 보호하는 락이다. 여러 스레드가 한 변수를 동시에 갱신하면, 결과는 예측할 수 없는 상태가 된다. #include #include #include #include #include // 2백만개 int number = 2000000; void error(char *msg) { fprintf(stderr, "%s: %s", msg, strerror(errno)); exit(1); } void *decay_number(void *t) { for (int i = 0; i < 100000; i++) { number = number - 1; } return NULL; } int main(int argc, char *argv[]) { void *result; int ste; pthread_t ..
프로세스가 언제나 답이 되지는 못한다. 다음과 같은 이유가 있기 때문이다. 프로세스를 생성하려면 시간이 걸린다. 어떤 컴퓨터는 프로세스를 새로 만들려면 시간이 꽤 오래 걸린다. 아주 오랜 시간은 아니지만 약간의 시간이 걸린다. 추가로 수행할 일이 0.02~0.03초 걸리더라도 매번 프로세스를 새로 만드는 건 그리 효율적이지 않다. 프로세스는 데이터를 공유하기가 까다롭다. 자식 프로세스를 만들면 부모 프로세스의 모든 데이터를 완전히 복사하게 된다. 그러나 데이터를 복사했으므로, 자식 프로세스가 부모 프로세스에 데이터를 다시 보내려면 파이프와 같은 메커니즘을 사용해야 한다. 프로세스는 그저 어렵기만 하다. 프로세스를 생성하려면 많은 코드를 짜야 한다. 그러면 프로그램은 길어지고, 지저분해지기 마련이다. 스레..