단일 프로세스 (process)
하나의 CPU를 사용하여 프로세스를 한 번씩 번갈아 수행
멀티 프로세스(multi process)
여러 개의 CPU를 사용하여 여러 프로세스를 동시에 수행
프로세스(process)
단순히 실행 중인 프로그램(program)으로, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것
이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성됩니다.
스레드(thread)
프로세스(process) 내에서 실제로 작업을 수행하는 주체
모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행
또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 함
for(int i=0; i < 300; i++)
System.out.printf("%s", new String("-"));
for(int i=0; i < 300; i++)
System.out.printf("%s", new String("|"));
class MyThread1 extends Thread{
@Override
public void run() {
for(int i = 0; i<300; i++) {
System.out.print("-");
}
}
}
class MyThread2 extends Thread{
@Override
public void run() {
for(int i = 0; i<300; i++) {
System.out.print("|");
}
}
}
public class Study64 {
public static void main(String[] args) {
MyThread1 th1 = new MyThread1();
MyThread2 th2 = new MyThread2();
th1.start();
th2.start();
}
}
메인 스레드가 종료되더라도 실행 중인 스레드가 하나라도 있다면 프로세스는 종료되지 않습니다.
(나중에)
학생 이름, 학과, 학번, 학점평균 입력하세요.
>> 황기태, 모바일, 1, 4.1
>> 이재문, 안드로이드, 2, 3.9
>> 김남윤, 웹공학, 3, 3.5
>> 최찬미, 빅데이터, 4, 4.25
----------------------------------
이름: 황기태
학과: 모바일
학번: 1
학점평균: 4.1
----------------------------------
이름: 이재문
학과: 안드로이드
학번: 2
학점평균: 3.9
----------------------------------
이름: 김남윤
학과: 웹공학
학번: 3
학점평균: 3.5
----------------------------------
이름: 최찬미
학과: 빅데이터
학번: 4
학점평균: 4.25
----------------------------------
학생 이름 >> 최찬미
최찬미, 빅데이터, 4, 4.25
학생 이름 >> 이재문
이재문, 안드로이드, 2, 3.9
학생 이름 >> 그만
문제_02
ArayList 대신, HashMap<String, Studnet> 해시맵을 이용하여 다시 작성하라. 해시맵에서 키는 학생 이름으로 한다.