쓰레드 4

[Spring] 스프링 MVC1- 웹 애플리케이션 이해(WAS, 서블릿, 쓰레드)

현재 거의 모든 형태의 데이터를 HTTP 로 전송한다. Web Server HTTP 기반으로 동작 정적 리소스(html, css , js, img..)제공, 기타 부가 기능 ex) nginx, apache Web Application Server(WAS) HTTP 기반으로 동작 프로그램 코드를 실행해 애플리케이션 로직 수행 ⇒ HTTP 요청이 오면 사용자에 따라서 다른 화면을 보여줄 수 있음 정적 리소스도 제공 가능 동적 html, http api(json) 생성 가능 서블릿, jsp, 스프링 mvc가 WAS 에서 동작 ex) tomcat, jetty WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다. 💡 Web Server: 정적 리소스 제공하는 서버 WAS: 애플리케이션 로직을 실행하는 서버 ..

BACK/SPRING 2024.03.04

[JAVA] 쓰레드의 6가지 상태

NEW 처음 객체 생성된 후 상태 RUNNABLE start() 메서드로 실행한 후 상태 실행과 실행 대기를 반복하면서 CPU를 다른 쓰레드들과 나눠 가짐 일시정지 상태로 전환 가능 (TIMED_WAITING, BLOCKED, WAITING) TERMINATED run() 메서드 종료 후 상태 TIMED_WAITING Thread.sleep(long millis) 또는 join(long millis) 호출: RUNNABLE -> TIME_WAITING 일시정지 시간 종료 또는 interrupt() 호출 : TIMED_WAITING -> RUNNABLE BLOCKED 동기화 메서드 또는 동기화 블록을 실행하기 위해 먼저 실행 중인 쓰레드의 실행 완료를 기다리는 상태 앞의 쓰레드의 동기화 영역 수행이 완료되..

BACK/JAVA 2022.08.26

[JAVA] 프로그램, 프로세스, 쓰레드 개념

컴퓨터를 이루는 주요 구성 요소에는 중앙 처리 장치(CPU), 메모리, 하드디스크가 있다. CPU- 연산을 수행함으로써 실제 프로그램을 실행하는 장치 하드디스크- 데이터의 저장 역할을 수행 메모리- 저장된 데이터를 CPU로 보내는 역할 하드디스크에 저장된 프로그램이 실행되기 위해서는 먼저 프로그램을 메모리로 로딩하는 과정을 거쳐 프로세스 상태로 만들어야 한다. 프로그램- 하드디스크에 저장된 파일들의 모임 프로세스- 메모리에 로딩된 프로그램 멀티 프로세스- 동일한 프로그램을 메모리에 여러번 로딩하면 여러개의 프로세스가 동작하는 것 쓰레드란? 프로세스(process) 내에서 실제로 작업을 수행하는 CPU 수행 단위. CPU를 사용하는 최소 단위라고 할 수 있다. 실제 CPU를 사용하는 것은 프로세스 내부의 ..

BACK/JAVA 2022.08.18

[JAVA] 쓰레드의 동기화(메서드 동기화, 블록 동기화)

동기화란 하나의 작업이 완전히 완료된 후 다른 작업을 수행하는 것이다. 멀티쓰레드를 사용할 땐 동기화가 필요하다. 동기화를 사용하지 않았을 때 문제 발생 // 공유 객체 class MyData{ int data = 3; public void plusData(){ int mydata=data; // 데이터 가져오기 try {Thread.sleep(2000);} catch(InterruptedException e){} data=mydata+1; // 2초 후에 값을 1만큼 증가 } } // 공유 객체를 사용하는 쓰레드 class PlusThread extends Thread{ MyData myData; public PlusThread(MyData myData){ // 생성자의 매개변수로 MyData 객체를 ..

BACK/JAVA 2022.08.10