본문 바로가기
반응형

분류 전체보기66

[Java] Process와 Thread의 차이 💡정의 프로세스: 프로세스는 독립적인 메모리 공간을 가지고 실행 중인 프로그램의 인스턴스를 나타냅니다. 각 프로세스는 운영 체제로부터 자체 메모리 및 자원(파일 핸들, 소켓 등)을 할당받아 실행됩니다. 프로세스는 서로 완전히 독립된 실행 환경을 가집니다. 스레드: 스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 하나의 프로세스가 여러 스레드를 가질 수 있습니다. 스레드는 프로세스 내의 공유 메모리 공간을 사용하며, 스레드 간 통신이 더 쉽습니다. 💡메모리 및 자원 공유 프로세스: 각 프로세스는 독립적인 메모리 공간을 갖기 때문에 다른 프로세스와의 메모리 공유가 어려우며, 별도의 메커니즘(프로세스 간 통신, IPC)이 필요합니다. 스레드: 스레드는 같은 프로세스 내에서 실행되므로 프로세스 내의 메모리.. 2023. 10. 22.
[Java] Thread를 자주쓰면 안되는 이유 Thread를 사용하는 것이 프로그램의 성능을 향상시키고 다양한 작업을 동시에 수행할 수 있는 강력한 도구입니다. 그러나 Thread를 과도하게 사용하면 몇 가지 문제와 위험성이 발생할 수 있습니다. 따라서 "더 많이 사용하면 더 좋다"는 절대적인 규칙은 없으며, Thread를 적절하게 사용해야 합니다. 아래는 Thread 사용에 대한 몇 가지 고려 사항입니다. 💡시스템 리소스 소모 각 Thread는 추가 메모리 및 CPU 리소스를 사용하므로, Thread를 과도하게 생성하면 시스템 리소스를 소모하게 됩니다. 이는 다른 프로세스나 서비스에 영향을 미칠 수 있습니다. 💡 동시성 문제 Thread를 다룰 때, 동시성 문제를 처리하는 것이 중요합니다. 공유 데이터에 대한 접근 및 변경은 동기화와 관련된 문제를.. 2023. 10. 21.
[Java] Thread를 써야하는 이유 Thread는 병렬성(Concurrency)을 구현하기 위한 중요한 개념이며, 다중 작업 환경에서 프로그램의 성능을 향상시키고 다양한 작업을 동시에 수행할 수 있도록 돕는데 사용됩니다. 아래는 Thread를 사용해야 하는 이유와 그 이점을 설명합니다. 💡 성능 향상 Thread를 사용하면 여러 작업을 동시에 실행할 수 있으므로, 다중 프로세서 시스템에서 CPU 자원을 효율적으로 활용할 수 있습니다. 이는 프로그램의 전체 실행 시간을 줄이고 성능을 향상시키는 데 도움이 됩니다. 💡 응답성 향상 UI 스레드와 같이 사용자와 상호작용하는 스레드를 따로 만들면, 프로그램이 작업을 수행하면서도 계속해서 사용자 입력에 응답할 수 있어 사용자 경험을 향상시킵니다 💡 동시성 제어 여러 작업을 동시에 실행하거나, 여러 .. 2023. 10. 20.
[Java] System.out.println 메소드는 현업에서 쓰지말라는 이유 System.out.println 메소드는 Java에서 표준 출력 스트림(standard output stream)에 메시지를 출력하는 데 사용되는 메소드로, 디버깅이나 간단한 로깅 목적으로는 유용할 수 있습니다. 그러나 현업에서 주로 사용하지 않거나 지양하는 이유는 다음과 같습니다. println()는 콘솔에 결과물을 출력하게 해주는 메서드이다. 위의 그림에서 보면 out은 PrintStream 타입의 인스턴스이며 이 PrintStream 클래스는 io 패키지 내에 있다. 즉 println()은 I/O 작업이며 이는 I/O 시스템콜을 호출하여 커널모드에서 작업한다는 의미이다. 당연히 시간이 많이 드는 작업이며 성능에 좋지 않다. 💡 결합성과 유지보수 문제 System.out.println을 코드에 남겨.. 2023. 10. 18.
반응형