IT/Java
Thread 변수 공유
유기스토리
2021. 6. 9. 08:49
package com.ygygood.sample_code;
import java.util.ArrayList;
import java.util.List;
public class ThreadTest {
static public List<Integer> arrList;
public ThreadTest() {
arrList = new ArrayList<Integer>();
}
public void start() {
Runnable putWorker = new PutWorker();
Runnable getWorker = new GetWorker();
Thread pThread = new Thread(putWorker);
Thread gThread = new Thread(getWorker);
pThread.start();
gThread.start();
}
public static void main(String[] args) {
new ThreadTest().start();
}
}
class PutWorker implements Runnable{
public void run() {
// TODO Auto-generated method stub
for(int i=1; i<=100; i++) {
try {
Thread.sleep(100);
ThreadTest.arrList.add(i);
System.out.println("PutWoker:"+i);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class GetWorker implements Runnable{
public void run() {
// TODO Auto-generated method stub
while(true) {
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("size of list:"+ThreadTest.arrList.size());
if(ThreadTest.arrList.size() != 0) {
System.out.println("GetWorker:"+ThreadTest.arrList.get(0));
ThreadTest.arrList.remove(0);
}
}
}
}