티스토리 뷰

반응형
package day19;
//싱글쓰레드
public class ThreadExam03 {
	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();
		
		for(int i=0;i<300;i++) 
			System.out.printf("%s", new String("-"));
		System.out.println("소요시간1:"+(System.currentTimeMillis()-startTime));
		
		for(int i=0;i<300;i++) 
			System.out.printf("%s", new String("|"));
		System.out.print("소요시간2:"+(System.currentTimeMillis()-startTime));
	}

}

package day19;
//멀티쓰레드
public class ThreadExam04 {
	static long startTime = 0;
	public static void main(String[] args) {
		MultThread mt = new MultThread();
		mt.start();
		startTime = System.currentTimeMillis();
		
		for(int i=0;i<300;i++) 
			System.out.printf("%s",new String("-"));
			System.out.print("소요시간1"+(System.currentTimeMillis()-ThreadExam04.startTime));
	}

}
class MultThread extends Thread{

	@Override
	public void run() {
		for(int i=0;i<300;i++) 
			System.out.printf("%s",new String("|"));
			System.out.print("소요시간2"+(System.currentTimeMillis()-ThreadExam04.startTime));
	}
	
}

※개념정리

 

싱글쓰레드

단순한 CPU만 사용하는 계산작업의 적합 ->컨테스트 스위칭 때문

*컨테스트 스위칭? 프로세스 또는 쓰레드 간의 전환

 

멀티쓰레드

서로 다른 자원을 사용하는 작업의 경우 멀티쓰레드가 적합

 

<멀티쓰레드의 장단점>
장)
CPU의 사용률 향상
자원을 보다 효율적으로 사용
사용자에 대한 응답성 향상
작업이 분리되어 간결한 코드

단)
동기화와 교착상태 발생가능성

 

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함