본문 바로가기

분류 전체보기365

JAVA 39일차 (2023-07-17) 자바 프로그래밍_45. 스레드 풀_개인프로젝트 - 마트 관리 시스템 ## 45. 스레드 재사용하기 : 자바에서 제공하는 스레드풀(thread pool) 사용 - Excutors/ExcutorService 사용법 ServerApp.java ㄴ 자바의 스레드 풀을 준비하고 10개의 스레드로 제한함 => ExecutorService 이용 ㄴ ExecutorService 인터페이스는 스레드 풀을 관리하고 작업을 처리하기 위한 인터페이스임 ㄴ newFixedThreadPool(10) 메서드는 크기가 10인 고정된 개수의 스레드를 가진 스레드 풀을 생성함 ㄴ 이렇게 생성된 스레드 풀은 최대 10개의 스레드를 유지하며, 스레드가 비어있을 때는 대기 중인 작업을 처리할 수 있음 => 스레드 풀을 사용하면 작업을 별도의 스레드에서 비동기적으로 실행할 수 있으며, 스레드 생성 및 관리에 .. 2023. 7. 17.
JAVA 39일차 (2023-07-17) 자바 프로그래밍_스레드 풀 사용법 - 자바 프로그래밍 - 스레드 프로그래밍(com.eomcs.concurrent.ex7) - 스레드풀 사용법 Executors 태스크 프레임워크 - 스레드풀 만들고 사용하기 Exam0110.java // Executors 태스크 프레임워크 - 스레드풀 만들고 사용하기 package com.eomcs.concurrent.ex7; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Exam0110 { public static void main(String[] args) { // 스레드풀을 생성한다. // - 최대 3개의 스레드를 생성한다. ExecutorService executorServ.. 2023. 7. 17.
JAVA 38일차 (2023-07-14) 자바 프로그래밍_스레드 재사용하기 : 스레드풀(thread pool) 구현_개인프로젝트 - 마트 관리 시스템 ## 44. 스레드 재사용하기 : 스레드풀(thread pool) 구현 - Pooling 기법을 활용하여 스레드를 재사용하는 방법 - GoF의 FlyWeight 디자인 패턴(풀링 기법)을 적용하여 스레드풀을 구현하는 방법 ㄴ report-server 의 bitcamp.util 패키지에 TreadPool 이라는 이름의 클래스를 생성 ㄴ report-server 의 bitcamp.util 패키지에 ResourcePool 이라는 이름의 interface 를 생성 ResourcePool.java ㄴ report-server 의 bitcamp.util 패키지에 ManagedThread 라는 이름의 클래스를 생성 ManagedThread.java ㄴ ManagedThread 클래스는 Thread 를 상속 받도록 함.. 2023. 7. 16.
JAVA 38일차 (2023-07-14) 자바 프로그래밍_스레드, 임계영역(Critical Region, Critical Section) - 자바 프로그래밍 - 스레드 프로그래밍(com.eomcs.concurrent.ex5 ~ ex7) - 멀티태스킹의 메커니즘 이해 - 임계영역(Critical Region, Critical Section): 세마포어(Semaphore)와 뮤텍스(Mutex) 멀티 스레딩(비동기 프로그래밍)의 문제점 - 사례 1 // 멀티 스레딩(비동기 프로그래밍)의 문제점 - 사례 1 package com.eomcs.concurrent.ex5; public class Exam0110 { static class MyList { int[] values = new int[100]; int size; public void add(int value) { if (size >= values.length) { delay(); return.. 2023. 7. 14.
JAVA 37일차 (2023-07-13) 자바 프로그래밍_스레드와 멀티태스킹 - 자바 프로그래밍 - 스레드 프로그래밍(com.eomcs.concurrent.ex1 ~ ex4) - 멀티태스킹의 메커니즘 이해 - 프로세스 스케쥴링: Round Robin 방식, Priority + Aging 방식 - 컨텍스트 스위칭 개념 - 프로세스 복제(fork)방식과 스레드 방식 비교 - 스레드의 구동원리와 사용법 - 스레드의 라이프사이클 이해 - Thread 클래스와 Runnable 인터페이스 사용법 - 프로젝트 실습 리눅스 서버 접속 및 C 파일 테스트 해보기 # 리눅스 운영체제 설치 - 가상 머신 구축 시스템 설치: Virtualbox - CLI 기반 가상 머신 관리 도구 설치: Vagrant - 가상 머신 생성 및 설정 ## 도구 준비 ### Virtualbox 설치 - [Virtualbo.. 2023. 7. 13.
JAVA 36일차 (2023-07-12) 자바 프로그래밍_여러 클라이언트 요청을 동시에 처리하기: Thread 적용_개인프로젝트 - 마트 관리 시스템 ## 43. 여러 클라이언트 요청을 동시에 처리하기: Thread 적용 - 멀티태스킹의 메커니즘 이해 - 프로세스 스케쥴링: Round Robin 방식, Priority + Aging 방식 - 컨텍스트 스위칭 개념 - 프로세스 복제(fork)방식과 스레드 방식 비교 - 임계영역(Critical Region, Critical Section): 세마포어(Semaphore)와 뮤텍스(Mutex) - 스레드의 구동원리와 사용법 - 스레드의 라이프사이클 이해 - Thread 클래스와 Runnable 인터페이스 사용법 ServerApp.java ㄴ RequestAgentThread 클래스는 클라이언트의 요청을 처리하기 위한 스레드를 나타냄 ㄴ 이 클래스는 Thread 클래스를 상속하고 socket 멤버 변수를 가지.. 2023. 7. 12.