220114 Multitasking

조영혜·2022년 1월 14일
0

웹에서도 한번 더 다룰 내용
Q.채팅프로그램 만들기

JAVA

Multitasking

: 다수(Multi)의 작업(tasking)을 동시에 처리.

Thread

: 바느질 할 때 사용하는 실.
: 바늘에 꿰어진 하나의 실로는 하나의 작업만 할 수 있음.

Thread of control

: 프로그램 코드를 실행하는 하나의 제어.
: 하나의 쓰레드로 하나의 작업만 처리 가능.
-> 한 웹사이트에서 동시에 n명이 로그인 하려고 한다면 n개의 쓰레드 필요.

Multi Processing (single thread)

: 하나의 응용프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 기법.
: 같은 작업을 하더라도 여러개의 프로세스 생성, 한 개의 쓰레드 동작.

Multithread

: 하나의 응용프로그램을 동시처리가 가능한 여러 작업으로 분할하고 작업의 개수만큼 스레드를 생성하여 각 스레드로 하여금 하나의 작업을 처리하도록 하는 기법.
: 같은 작업을 한다면 한개의 프로세스만 생성, 여러개의 분할된 쓰레드 생성. -> 메모리를 나누어서 사용.

쓰레드 작성하기

  1. 쓰레드 클래스 상속
  2. 러너블 인터페이스 사용
  • run() :

  • start() : 생성된 스레드 객체를 스케줄링 가능한 상태로 JVM에게 지시.

JVM : 자바 바이트코드를 실행하는 실행기. 자바 컴파일러는 C/C++ 등의 컴파일러처럼 고수준 언어를 기계어, 즉 직접적인 CPU 명령으로 변환하는 것이 아니라, 개발자가 이해하는 자바 언어를 JVM이 이해하는 자바 바이트코드로 번역한다.

스케쥴링 : 메모리에 적제된 프로그램을 CPU(중앙처리장지. 연산장치)가 실행할 수 있도록 스레드에게 CPU 할당. 스케줄링에 의해 해당 스레드가 선택되면, JVM에 의해 run()메소드가 호출돼 실행이 됨.

소켓 (Socket)

: 서버와 클라이언트가 데이터를 송수신하는 컴퓨터의 입출구.

스트림 (Stream)

: 하드디스크, 네트워크 및 메모리 등과 같이 데이터 소스나 목적지 사이에 데이터를 주고 받기 위하여 형성된 채널을 통하여 일련의 데이터가 흘러 들어가거나, 흘러 들어오는 것.

: 서버와 클라이언트를 연결하는 통로(채널)를 통해 주고받을 수 있음. 이 통로가 스트림.

input stream : 외부로부터 메세지를 받기 위해 사용하는 메소드.
output stream : 외부로 메세지를 보낼 때 쓰는 메소드.

버퍼 (buffer)

: 임시기억공간.
: 어떤 장치에서 다른 장치로 데이터를 송신할 때 일어나는 시간의 차이나 데이터 흐름의 속도 차이를 조정하기 위해 일시적으로 데이터를 기억시키는 장치.
입력한 값을 버퍼에 임시저장해놓고 한번에 뿌려줘야함.

0개의 댓글