리눅스 C++ Signal 핸들러 클래스 (멀티스레드 기반) 1. 개요 이 문서는 리눅스 환경에서 시그널 처리 전용 클래스를 만들고, 별도의 스레드에서 안전하게 시그널을 처리하는 구조를 설명합니다. 2. 핵심 설계 시그널과 콜백을 등록하는 유연한 클래스 구조 핸들링은 별도 스레드에서 sigwaitinfo()로 처리 메인 스레드는 자유롭게 동작 가능 3. 클래스 헤더: SignalHandler.hpp #pragma once#include #include #include #include #include #include class SignalHandler {public: using Callba..
Thread와 싱글톤 상속의 문제점싱글톤과 Thread 클래스를 동시에 상속받는 것은 초기에는 코드가 간단해 보일 수 있지만, 실제로는 런타임 오류와 메모리 관리 문제를 일으킬 수 있는 설계상 큰 위험 요소입니다. 이 두 가지 상속의 문제점과 해결책을 정리해 보았습니다.문제점수명 관리 문제싱글톤 객체는 프로그램이 종료될 때까지 유지되지만, Thread 객체는 독립적으로 실행 및 종료되어야 합니다. 두 객체를 동시에 상속받을 경우, 싱글톤 객체의 수명이 Thread의 종료 타이밍에 영향을 미칠 수 있어 DLL 언로드나 프로그램 종료 시점에서 예기치 않은 문제가 발생할 수 있습니다.컴파일 타임 검증의 부재C++에서는 기본적으로 두 클래스를 상속받는 것에 대해 명시적인 제한이 없기 때문에, 개발자는 이러한 설..
프로세스(Process)와 쓰레드(Thread)는 둘 다 동시에 여러 작업을 수행하는데 사용되는 개념이지만, 몇 가지 중요한 차이점이 있습니다. 독립성: 프로세스: 각 프로세스는 독립된 메모리 공간을 가지며, 한 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다. 각 프로세스는 운영체제에 의해 별도로 관리됩니다. 쓰레드: 쓰레드는 프로세스 내에서 실행되는 여러 실행 흐름으로, 같은 프로세스 내의 쓰레드들은 같은 메모리 공간을 공유합니다. 따라서 쓰레드 간에는 데이터를 쉽게 공유할 수 있습니다. 자원 사용: 프로세스: 각 프로세스는 운영체제로부터 독립적인 자원을 할당받습니다. 이로 인해 프로세스 간 통신이나 데이터 공유에는 별도의 메커니즘이 필요합니다. 쓰레드: 쓰레드는 같은 프로세스 내의 다른 쓰..
- Total
- Today
- Yesterday
- 현포다이브
- 스쿠버다이빙
- 블루버블다이빙팀
- 암호화
- 서귀포블루버블
- CMake
- Build
- Linux
- 블루버블
- C
- DLL
- Thread
- 블루버블다이브팀
- OpenSource
- C++
- Windows
- 패턴
- C#
- 윈도우
- ip
- 제주도
- C#.NET
- 리눅스
- PowerShell
- 외돌개
- 성산블루버블
- C# 고급 기술
- Sleep
- 울릉도
- 서귀포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |