Полный код (снизу GitHub связаны страницы):питон многопоточный на выходе информации
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import threading
import time
import random
import copy
exitFlag = 0
class checkup (threading.Thread): #繼承thred 檢查流程
def __init__(self, threadID, patientList, patientStatus):
threading.Thread.__init__(self)
self.threadID = threadID
self.patientList = patientList
self.patientStatus = patientStatus
def run(self): #檢查中
while True:
if(check(self.patientList)):
break
for i in range(0, 2, 1):
for status in self.patientStatus:
if status['name'] == self.patientList[i]['name'] and status['status'] == False and self.patientList[i]['status'] == False:
status['status'] = True
checkTime = random.randint(1,3)
print "%s: %s check time(%d)" % (self.patientList[i]['name'], self.threadID, checkTime)
time.sleep(checkTime)
self.patientList[i]['status'] = True
status['status'] = False
time.sleep(1)
#check all patients have to be ckecked
def check(patientList):
checkFlag = False
for patient in patientList:
if patient['status'] == True:
checkFlag = True
else:
checkFlag = False
if checkFlag:
return True
else:
return False
# patients init
patients = [{
'name': 'Kevin',
'status': False
},{
'name': 'Tom',
'status': False
}]
# Outpatient init
random.shuffle(patients)
Cardiology = {
'name': 'Cardiology',
'patientList': copy.deepcopy(patients),
'patientStatus': patients
}
CardiologyCheckup = checkup('Cardiology', Cardiology['patientList'], Cardiology['patientStatus'])
random.shuffle(patients)
Chest = {
'name': 'Chest',
'patientList': copy.deepcopy(patients),
'patientStatus': patients
}
ChestCheckup = checkup('Chest', Chest['patientList'], Chest['patientStatus'])
ChestCheckup.start()
CardiologyCheckup.start()
Источник здесь: [https://github.com/stevekevin1005/OS/blob/master/os.py]
Я хочу, чтобы это выход:
Tom: Chest check time(1)
Kevin: Cardiology check time(2)
Kevin: Chest check time(1)
Tom: Cardiology check time(1)
но иногда:
Kevin: Chest check time(2)
Tom: Cardiology check time(3)
Tom: Chest check time(1)
только три строки
Что я совершу?
Как создать элемент, подобный объекту? ex.
a={
'a': 1,
'b': 2
}
#a[a] 1
#a[b] 2
Не могли бы вы включить код в вопрос (или фрагмент, если он слишком длинный) вместо ссылки? Кроме того, кажется, что ваш код немного грязный. Взгляните на [PEP 8] (https://www.python.org/dev/peps/pep-0008/). –
Спасибо за редактирование. Есть ли причина, почему вместо вставки 72 полных строк кода вы вставляете какую-то часть в вопрос? – Dilettant
Я не могу заполнить весь код, кажется, слишком много времени для вставки –