본문 바로가기

멀티 스레드8

QThread와 main 스레드간의 통신 연결-1- 안녕하세요? 원래는 이 일련의 포스팅은 원래 키보드나 마우스를 클릭할 경우 PyQt5로 만들어 놓은 GUI가 얼어버리는 - freezing이라는 현상이 벌어지는 것을 해결하기 위해서 시도가 되었습니다. 일단 이 일련의 작업이 헛다리를 짚은 것으로 끝이 나기는 났습니다만, 그래도 가치가 있는 기술을 익히는 데 성공했기 때문에, 일단 이 블로그에 기록으로 남기고자 합니다. 먼저 이 작업을 위해서 일단 메인이 되는 py파일을 복제해 보도록 합니다. 이렇게 함으로서 일단 작업을 하나 시작할 수 있게 됩니다. 그리고 나서는 QThread의 역할을 하게될 서브 스레드라고 해야 할까요? 메인이 되는 클래스를 하나 만들어 주도록 합니다. 그리고 나서 다음으로 해야 할 일은......... 위 스크린샷처럼 원래는 tot.. 2020. 2. 5.
한번 더 수행한 데이터 수집기(data harvester)의 개량 안녕하세요? 이번 포스팅에서는 이제 본격적으로 데이터 수집기를 작동해서 한번 코스피에서 데이터를 수집해 보려고 했습니다만, 문제가 생겨서 또 다른 개량을 한번 더 해야만 했습니다. 이번 개량을 통해서 이제서야 문제가 없는 식으로 작업을 할 수 있는 것으로 보입니다. 이제 시간이 되었습니다. 월요일 오후 3시 30분을 넘어서 드디어 장이 마감되었습니다. 왜 이시간까지 기다렸냐 하면, 장중에서는 데이터가 추가되기 때문에, 모두 같은 데이터가 수집이 된다고 보장을 할 수 없습니다. 먼저 유저 인터페이스에서 한번 10분봉을 목표로 해서, 작업을 시작하도록 합니다. 여기서 까지는 특별한 것은 없습니다만, 문제는 다음에 벌어졌습니다. 중간에 데이터를 더는 수집하지 못하고 데이터 수집기가 멈추어 버린 것 입니다. 이.. 2020. 1. 8.
평균회귀 테스트에서 발견한 에러 part2 안녕하세요? 지난번 포스팅에서 일단 데이터의 순서가 제가 사용한 데이터와 실제 예제에서 사용한 데이터가 다르다는 것을 알려주었으며, 그전에 오랜만에 이 평균회귀 테스트를 손보는 김에 일단 1종목을 계산하는 데 걸리는 시간을 더 줄일 수 없는지 알아보고자 합니다. 일단 시간을 줄이기 위해서는 멀티 쓰레드가 최고라는 생각을 해서, 처음으로 시도를 하는 것은 위 스크린샷처럼 PyQt5를 가지고 오도록 합니다. 다음으로 해야 할일은 먼저 기존에 있는 클래스를 QMainWindow로 바꾸어 주는 것 입니다. 이렇게 해서 우선은 메인이 되는 클래스를 QObjects로 만들어 줍니다. 그리고 나서 위 스크린샷처럼 3개의 스레드를 생성되도록 만들어 주도록 하며, 한번 이렇게 해서 스레드를 돌려 보도록 합니다. 그리고 .. 2019. 8. 29.
QThread를 향한 공부 안녕하세요? 지난번 포스팅에서 멀티 프로세싱에서 한계가 있었지만, 한번 찾아보니까, PyQt5에서는 QThread라는 것을 기본적으로 지원하고 있으며, 이게 멀티 스레딩이 된다는 정보까지는 얻었습니다. 그래서 이번 포스팅에서는 이 QThread를 한번 공부해 보는 것으로 포스팅을 하고자 합니다. 먼저 연습을 위해서 MyStockTrader라는 프로젝트 안에서 위 스크린샷과 같이 multithread.py를 만들어 보도록 해야 합니다. 다음으로 일단 인터넷에 나와 있는 코드를 그대로 옮겨 오도록 합니다. 이 코드는 윈도우 창을 하나 띄우고, 시간이 지나면서 카운트가 올라가는 카운터가 있으며, 버튼이 하나 있는 식으로 있습니다. 그리고 나서 버튼을 누르면 위 스크린샷과 같이 sleep명령어를 줘서 5초간 뭐.. 2019. 7. 25.