본문 바로가기

Java/문제

여러 쓰레드에서 하나의 변수에 차례로 접근하

package Day4;

public class Thread_2 {
public static void main(String[] args) throws InterruptedException {
System.out.println("Main Strat");
Runnable a; 
for (int i = 1; i <= 10; i++) {
a = new Thread2(i + "번째");
Thread thread = new Thread(a);
//
// if (i < 5) {
// thread.setPriority(Thread.MIN_PRIORITY);
// } else {
// thread.setPriority(Thread.MAX_PRIORITY);
// }

thread.start();
//thread.join();

}

System.out.println("Main End");
}
}

class Thread2 implements Runnable {
public static int coin = 0;
private String name;

Thread2(String name) {
setName(name); // Thread에 이름을 부여
}



public String getName() {
return name;
}



public void setName(String name) {
this.name = name;
}



public void run() {
for (int i = 0; i < 100; i++) {
// try {
// //notifyAll();
// //wait();
// }catch(InterruptedException e) {
// e.printStackTrace();
// }

try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
Thread2.pul(name ,i);


}
}
public static synchronized void pul(String name, int i) {
coin += 2;
//int coin= this.coin;
System.out.println(name + " : " + i + " / " + coin);
}


}

'Java > 문제' 카테고리의 다른 글

[알고리즘]정렬  (0) 2019.06.19
[자료구조]힙  (0) 2019.06.19
List 구현(Java)  (0) 2019.06.11
[Java] 별출력하기  (0) 2019.06.10
Java_Stack,Queue 상속으로 구현  (0) 2019.06.10