티스토리 뷰

JAVA

GoldenGoose_멀티스레드 연습

장꾸꾸 2020. 9. 3. 12:06

package main;

public 
class Main {

	public static void main(String[] args) {
		// TODO 황금알 예제
			ShareArea share = new ShareArea(); //공유공간 생성자로 가져오고
			Thread1 th1 = new Thread1(); //알 회수 스레드 가져오고
			th1.share = share;
			Thread2 th2 = new Thread2(); //알낳는 거위 스레드 가져오고
			th2.share = share;
			th1.start();
			th2.start();
	}

}

 

package main;

public class ShareArea {
	int num;
}

 

package main;

import java.util.Scanner;

public class Thread1 extends Thread { //거위알 뺏어오기
	ShareArea share; //공유공간 가져오고
	
	@Override
	public void run() {
		int total =0;
		Scanner scan = new Scanner(System.in);
		while(true){
			scan.nextLine();//엔터치면
			synchronized(share) { //싱크로나이즈: 동시진행되는 다른 작업 대기하세요~
				total += share.num; // 회수한 거위알 수를 계속 더해줌
				share.num=0;//공유공간의 num은 일단 0으로 시작
				System.out.println("거위알 회수 중...");
				try {
						Thread.sleep(7000); // 7초동안 회수
				}catch(InterruptedException e) {
					e.printStackTrace();
				}
				System.out.println("현재 거위알 수:"+total);
			}
		}
	}
}

 

'JAVA' 카테고리의 다른 글

JSP_BookProject  (0) 2020.11.16
랜덤으로 공 튀기기_AWT  (0) 2020.09.03
Sep2_프레임창 화면 중앙에 위치시키기(AWT, JFrame)  (0) 2020.09.03
Sep1_ Runnable  (0) 2020.09.01
파일저장_Stream  (0) 2020.08.31
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
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
글 보관함