TEMP

Sep1_멀티스레드에서 우선순위 지정(flag 개념)

장꾸꾸 2020. 9. 1. 18:49

 

package main;
//우선순위 방식
public class Main {

	public static void main(String[] args) {
		ShareArea share = new ShareArea();
		MyThread1 th1 = new MyThread1();
		th1.share = share;
		MyThread2 th2 = new MyThread2();
		th2.share = share;
		
		th1.start();
		th2.start();

	}

}
package main;

public class MyThread1 extends Thread {
		ShareArea share;
		
		@Override
		public void run() {		
			share.num = 0;
			for (int i = 0; i < 100000; i++) {
				for (int j = 0; j < 10000; j++) {
					if(j%2 ==0) {
						share.num += 100;
					}else {
						share.num -= 100;
					}
				}
			}
			share.num = -1;
			share.isDone=true;
			
		}
}
package main;

public class MyThread2 extends Thread  {
		ShareArea share;
		@Override
		public void run() {		
			while(!share.isDone) {
				System.out.println("dd")
			}
			System.out.println("하이 "+ share.num);
		}
		
}
package main;

public class ShareArea {
	int num;
	volatile booleanisDone = false; //volatile 실제 메모리 위치로 가서 값을 체크하세용
}