μλ νμΈμ.
νλ‘κ·Έλλ°μ νλ©΄μ μ¬λ¬ λμμ νκΈ° μν΄μλ μ°λ λλ κ°λ μ μμμΌ ν©λλ€.
μ°μ , μμ κ΄λ¦¬μλ₯Ό ν λ² λ³΄κ² μ΅λλ€.
CPUλ ν λ²μ ν κ°μ§μ λμλ°μ νμ§ λͺ»ν©λλ€. νμ§λ§ G(10μ 9μ κ³±)λ¨μλ‘ λμν©λλ€.
μμ κ΄λ¦¬μλ₯Ό νμΈνλ©΄ CPUλ νλμΈ λ°λ©΄, νλ‘μΈμ€λ 184κ°κ° 1958κ°μ μ°λ λλ₯Ό ν΅ν΄ λμνλ κ²μ νμΈν μ μμ΅λλ€.
CPUλ μκ°, μ°μ μμ λ± μ¬λ¬κ°μ§ λ°©μμΌλ‘ ν λΉν©λλ€.
μλ₯Ό λ€μ΄,
μ΄λ°μμΌλ‘ μ°λ λ 1λ² μν, 2λ² μν, λ€μ 3λ² μννλ©΄μ λ°λ³΅ν©λλ€.
κ·Έλ¬λ κ·Έ μλκ° κ΅μ₯ν λΉ¨λΌ μ¬λλ€μ΄ μ¬μ©νλλ° μμμ°¨λ¦¬μ§ λͺ»ν©λλ€.
#μ°λ λλ₯Ό μ μΈνμ§ μμ μμ
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import time
import sys
class MainWidget(QWidget):
def __init__(self):
super().__init__()
thread_start = QPushButton("μ μ!")
thread_start.clicked.connect(self.increaseNumber)
vbox = QVBoxLayout()
vbox.addWidget(thread_start)
self.resize(200, 200)
self.setLayout(vbox)
#λ²νΌμ λλ₯΄λ©΄ 1μ© μ¦κ°νλ ν¨μ
def increaseNumber(self):
for i in range(10):
print("Thread :",i)
time.sleep(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MainWidget()
widget.show()
sys.exit(app.exec_())
μ°λ λλ₯Ό μ μΈνμ§ μκ³ λ²νΌμ λλ₯΄λ©΄ 0λΆν° 9κΉμ§ μννλ κ°λ¨ν PyQt5λ₯Ό μμλ₯Ό λ³΄κ² μ΅λλ€.
μ½λ©μμλ μ°λ λλ₯Ό μ μΈνμ§ μμμ§λ§, μ¬μ€ μ¬κΈ°μλ μ°λ λκ° μ¬μ©λκ³ μμ΅λλ€.
λ°λ‘ GUIμμ μ¬μ©λκ³ μμ΅λλ€.
μ΄ νλ‘κ·Έλ¨μ λλ € 보μλ©΄, λ²νΌμ λλ₯΄κ³ ν¨μκ° μνμ λ§μΉ λκΉμ§ GUIλ λμνμ§ μμ΅λλ€.
μλ§ μλ΅νμ§ μλλ€κ³ κ²½κ³ μ°½μ΄ λ° κ²μ λλ€.
κ·Έ μ΄μ λ μ΄ νλ‘κ·Έλ¨μ ν λΉλ μ°λ λλ νλμ΄κ³ , μ΄λ―Έ ν¨μλ₯Ό λμνλλ° μ°λ λκ° μ¬μ©λκ³ μμΌλ, GUIλ κ·Έ λμ λμνμ§ μμ΅λλ€.
κ·Έλ λ€λ©΄ μ°λ λλ₯Ό ν λ² μ¬μ©ν΄μ GUIλ μμ§μ΄κ³ , ν¨μλ λμνλ μμ λ₯Ό μμ±ν΄λ³΄κ² μ΅λλ€.
#μ°λ λλ₯Ό μ μΈν κ°λ¨ν μμ
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import time
import sys
#μ°λ λ μ μΈ
class Thread1(QThread):
#parent = MainWidgetμ μμ λ°μ.
def __init__(self, parent):
super().__init__(parent)
def run(self):
for i in range(10):
print("Thread :",i)
time.sleep(1)
class MainWidget(QWidget):
def __init__(self):
super().__init__()
thread_start = QPushButton("μ μ!")
thread_start.clicked.connect(self.increaseNumber)
vbox = QVBoxLayout()
vbox.addWidget(thread_start)
self.resize(200,200)
self.setLayout(vbox)
def increaseNumber(self):
x = Thread1(self)
x.start()
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MainWidget()
widget.show()
sys.exit(app.exec_())
QThreadλ₯Ό μ μΈνκ³ μμ μ΄ μ€νμν€κ³ μ νλ ν¨μλ₯Ό runμ μμ±ν΄μ€λλ€.
κ·Έλ¦¬κ³ μ μΈν μ°λ λ ν΄λ μ€λ₯Ό κ°μ²΄λ₯Ό μμ±ν΄μ£Όκ³ κ°μ²΄λ₯Ό startν΄μ£Όλ©΄ κ°λ¨νκ² ν΄κ²°λ©λλ€.