201216_개찰구프로젝트_개찰구05

정재현·2020년 12월 16일
0

TIL

목록 보기
16/80

어제에 이어서 이해한 멀티쓰레드 예제를 개찰구로 변환해서 사용해보기로 했다.
어제는 멀티쓰레드에 어떤식으로 적용시켜야 할지 헷갈렸는데,
오늘은 대략 감이 왔다.

생각해본게 in out 개찰구를 나누는것을 그래프에서 값이 전달되었을 때 나누는 것인데 멀티쓰레드 안에서 이게 인이고 이게 아웃이야를 따로 명시해줄 필요가 없다고 생각했다.

어차피 밖에서부터 명시되어 멀티쓰레드 안으로 들어올건데 말이다.
그리고 in out이라고 해서 입구는 이쪽 출구는 저쪽을 잡아줄 필요도 없다는걸 생각했다.

(아 이건 좀 애매한데..) 아니 근데 내가 사람들이 움직이는걸 구현할 것도 아니고 이건 나가는 개찰구 이건 들어오는 개찰구 해서 사람들의 인구수에 맞게끔 컨트롤만 해주면 되는거라서 괜찮을 것이라고 생각했다.

in out 하나씩 짜본다고 가정했고,
in 과 out 개찰구는 둘 사이의 영향을 받지 않는 다는 전제하에 멀티로 돌렸다. (나중에 좀 더 효율적으로 돌아간다면 한쪽 개찰구를 쓸 사람들이 더이상 없다면 다른 한쪽으로 변환해주는 것도 예상 중.)
때문에 run에서의 Exit 를 뱉는 쪽은 필요없고,
for문에서의 사이즈는 그래프에서 받아온 값을 알고리즘에 맞게 배분후 in 과 out에 뿌려주면 될듯하다.
우선 오늘은 in: 20, out: 10 으로 진행했고,
사람이 개찰구를 지나가는 속도는 1초로 가정하였다.

결과를 보면서 생각해보니 수월했는데, 의문점이

이상하게 0-9번까지 일정하게 in과 out이 같이 움직이는데,
저기 1번째 out과 in만 일정하지 않다.. 왜그러지..?
저 이유는 잘 모르겠다.. 내일 서치를 통해 한번더 봐야할듯하다.
신경쓰지 않아도 될 문제일까..?

github: https://github.com/jeong-jaehyeon/JavaProject/tree/blockingQueue/src

오늘의 코멘트: 출력물이 있으니 좋네

profile
"돈받고 일하면 프로다"

0개의 댓글