본문 바로가기
반응형

분류 전체보기201

초보 자바 프로그래밍(58) - Thread 동기화 🔖 INDEX Java에서 스레드 간의 동기화는 여러 스레드가 동시에 동일한 자원에 접근할 때 발생하는 데이터 무결성 문제를 방지하기 위해 사용됩니다. 여기서 주의해야 할 가장 중요한 개념은 '공유된 자원'에 대한 동시 수정을 방지하는 것입니다. synchronized Synchronized는 Java에서 객체의 임계 영역(critical section)에 대한 동시 접근을 제한하기 위한 동기화 키워드입니다. 이 키워드를 사용하면 한 번에 하나의 스레드만 해당 코드 블록이나 메서드에 접근할 수 있으므로 다른 스레드들은 잠금이 해제될 때까지 대기해야 합니다. 사용 방법 메서드에 synchronized 사용: 전체 메서드를 동기화합니다. public synchronized void synchronizedMe.. 2023. 10. 4.
초보 자바 프로그래밍(57) - Thread 🔖 INDEX Thread (스레드) 개념 Java는 멀티 스레딩을 지원하는 프로그래밍 언어입니다. 이를 통해 개발자는 동시에 여러 작업을 수행할 수 있게 됩니다. Thread (스레드)란? 스레드는 컴퓨터 프로그램 내에서, 특히 프로세스 내에서 실행되는 가장 작은 단위의 처리입니다. 스레드는 동일한 프로세스의 메모리를 공유하면서 독립적으로 실행될 수 있습니다. 이를 통해 여러 작업을 병렬로 처리하거나 비동기적으로 처리하는 것이 가능해집니다. 스레드의 중요성 동시성: 멀티스레드를 활용하면 하나의 프로세스 내에서 여러 작업을 동시에 수행할 수 있습니다. 이는 특히 I/O 바운드 작업이 많은 프로그램에서 성능 향상을 가져올 수 있습니다. 자원 공유: 스레드는 동일한 프로세스 내에서 메모리와 리소스를 공유하기.. 2023. 10. 3.
초보 자바 프로그래밍(56) - Exception Handling (try-catch-finally, throws) 🔖 INDEX Exception Handling (예외 처리) Exception Handling (예외 처리)는 프로그램의 안정성을 확보하고, 예기치 않은 상황에 대응하는 중요한 기술입니다. 자바에서는 주로 try-catch-finally 및 throws를 이용한 예외 처리 방법을 제공합니다. try-catch-finally 구문 사용 try-catch-finally 구문은 자바에서 예외 처리를 위해 사용되는 구문입니다. 예외는 프로그램이 정상적으로 실행되지 않을 때 발생하는 상황을 나타냅니다. 예외 처리는 이러한 상황을 안전하게 관리하고 프로그램의 흐름을 제어하는 방법을 제공합니다. 구조 try { // 예외가 발생할 수 있는 코드 } catch (ExceptionType1 e) { // Excepti.. 2023. 10. 3.
C++ Structured Exception Handling (구조화된 예외 처리) 🔖 INDEX 기본 설명 구조화된 예외 처리는 코드 내에서 예외적인 상황을 안전하고 효과적으로 처리하기 위한 프로그래밍 패러다임입니다. C++에서의 구조화된 예외 처리는 주로 try, catch, throw 키워드와 함께 사용되는 관련 메커니즘을 기반으로 합니다. throw 기능: 프로그램의 실행 중 예외적인 상황을 발견할 때 예외를 발생(던지기)시키는 데 사용됩니다. 사용: throw 키워드 뒤에는 발생시킬 예외 객체를 지정합니다. throw std::runtime_error("This is an error message."); try 기능: 예외가 발생할 가능성이 있는 코드 블록을 감쌉니다. 사용: try 블록 내에서 발생하는 모든 예외는 해당 블록 뒤에 오는 catch 블록에서 처리됩니다. try .. 2023. 10. 3.
C++11 주요 업데이트 : std::tuple, Variadic Templates, std::bind, std::function 🔖 INDEX std::tuple 튜플(std::tuple)은 C++11에서 도입된 컨테이너 유형으로, 서로 다른 타입의 여러 원소를 하나의 단위로 묶을 수 있습니다. 이는 함수에서 여러 값을 반환하거나, 여러 값을 단일 객체로 묶어 전달할 때 유용합니다. 주요 특징 다양한 타입의 값: 튜플은 서로 다른 타입의 여러 원소를 저장할 수 있습니다. 고정 크기: 튜플의 크기는 생성 시에 결정되며, 나중에 변경할 수 없습니다. 값 접근: std::get(tuple) 함수나 구조화된 바인딩을 사용하여 튜플의 원소에 접근할 수 있습니다. 사용 예제 튜플 생성 및 값 할당 #include int main() { std::tuple t1(1, 3.14, "Hello"); auto t2 = std::make_tuple(.. 2023. 10. 3.
C++11 주요 업데이트 : Deleted Functions, User-defined Literals, constexpr 🔖 INDEX Deleted Functions C++11에서는 함수를 명시적으로 삭제할 수 있는 기능이 도입되었습니다. 함수를 삭제하는 것은 해당 함수가 사용되는 것을 방지하기 위한 것입니다. 함수를 삭제하면 해당 함수에 대한 모든 호출은 컴파일 시간에 오류로 간주됩니다. 이 기능은 클래스 설계에서 특히 유용하며, 개발자가 해당 함수가 사용되지 않도록 의도적으로 선택할 수 있습니다. 이전의 C++ 버전에서는 이를 달성하기 위해 함수를 private으로 만들거나 구현을 제공하지 않았지만, C++11에서는 delete 키워드를 사용하여 이를 명시적으로 표현할 수 있습니다. 사용 예제 복사 생성자 및 대입 연산자 삭제 클래스가 복사되는 것을 원하지 않는 경우, 복사 생성자와 대입 연산자를 삭제할 수 있습니다... 2023. 10. 3.
반응형