본문 바로가기

멀티 스레딩18

QThread의 적용 part2 안녕하세요? 지난번 포스팅에서 어떤 이유가 없는-그냥 원인을 발견하지 못한 것 때문에 생긴 것으로 인해서 어쩔 수 없이 제대로 종목에 대한 기본 정보를 받아오지 못하는 것을 볼 수 있었습니다. 이번 포스팅에는 그 원인을 파악하기 위해서 이런저런 시행착오를 하는 과정을 보여 드리고자 합니다. 먼저 위 스크린샷처럼 screenNo가 겹쳐져서 생긴 에러가 아닌가 하고 처음에는 의심을 했습니다. 충분히 있을 수는 있다는 생각이 들었습니다. 하지만 결과는 이것도 제대로 된 것이 아니라 다른 데 있었습니다. 그냥 프로그램을 강제로 종료할 수 밖에 없기는 없었습니다. 다음으로는 같은 클래스 안에서 로그인이 되지 않아서 생긴 문제가 아닌가 하는 생각이 들었습니다. 그래서 이런 문제를 해결하기 위해서 위 스크린샷과 같이.. 2019. 7. 28.
QThread의 적용 part1 안녕하세요? 이번 포스팅 부터는 어떻게 해서 제 알고리즘 트레이딩 시스템에서 QThread를 적용해서 다중의 종목을 한번 조사해 보는 작업을 해볼 예정인데, 이 작업이 처음에는 쉬울 줄 알았는데, 예상외로 어려워서 많이 늦어지게 되었습니다. 아무튼 늦어진 것은 늦어진 것이고, 그래도 포스팅으로 올리고자 이렇게 늦게나마 글을 올립니다. 우선 첫번째 작업입니다. 일단 QRunnable에서 위 스크린샷과 같이 communication.txt에서 정보를 가지고 오는 것을 먼저 해야만 합니다. 그리고 나서 이 QThread에서 멀티 스레드를 실행시키는데, 일단 for문을 사용해서 먼저 1에서 5까지 5개의 스레드를 먼저 실행시켜 주도록 합니다. 일단 처음으로 해서 위 스크린샷처럼 5개의 종목에 관한 데이터를 동시.. 2019. 7. 27.
QThread를 향한 공부-final- 안녕하세요? 제목에는 final이라고 적었지만, 이게....... 공부라는 것을 어디까지 둘지 생각해 본다면, 일단 지금은 알고리즘 트레이딩을 하기 위해서 필요한 수준까지만이라고 하자면, 그 까지는 어떻게 도달한 것 같다는 것을 말하기 위해서 final이라고 이름을 붙였습니다. 물론 멀티 스레딩이니, QThread에서도 파면 팔수록 무한히 무언가가 나오겠지만, 언제까지 이것만 팔 수 없기에 이렇게 여기서 잠시 멈추고, 다음의 작업을 이어가도록 해 보는 것 입니다. 먼저 해야할 일은 이게 진짜로 동시에 실행이 된 것이 맞는지 아닌지 알아보기 위해서, 한번 위 스크린샷처럼 시간을 알 수 있는 모듈인 datetime을 import해 오도록 합니다. 그리고 나서 QRunnable에서 위 스크린샷처럼 시간을 적어.. 2019. 7. 26.
QThread를 향한 공부-4- 안녕하세요? 지난번 포스팅에서 어떻게 4개의 스레드를 PyQt환경에서 실행을 시키는 데는 성공했는데, 이정도선에서 만족할 수는 없었기에 이번 포스팅에서는 한번 갯수를 늘려서 실행을 시켜 보고 나서, 그 결과를 올려 보고자 합니다. 그리고 나서 위 스크린샷에서 나오는 것처럼 일단 처음에는 각각의 스레드마다 데이터를 GUI스레드 = 메인 스레드에서 받을 수 있는지를 한번 처리해 보고자 합니다. 먼저 __init__에 number라는 새로운 변수를 주도록 합니다. 그리고 나서 다음으로 해야 할일은 위 스크린샷처럼 스레드를 만들면서 ()안에 변수를 집어넣어 주는 것으로 시작을 해 보도록 합니다. 그리고 나서 위 스크린샷처럼 일단 작업을 하고 나면, 진짜로 스레드마다 번호가 붙는 것을 확인할 수 있었습니다. 그리.. 2019. 7. 26.