ฉันมีโปรแกรมที่รับคำขอจากกระบวนการ แต่เมื่อผู้ใช้แนะนำกระบวนการใหม่ มันจะดำเนินการหยุดโปรแกรมทั้งหมด และเมื่อกระบวนการเสร็จสิ้น ก็จะอนุญาตให้มีการแนะนำอีกโปรแกรมหนึ่งได้ แต่ฉันสงสัยว่ามีวิธีใดบ้างที่จะทำให้ผู้ใช้สามารถแนะนำกระบวนการอื่นในขณะที่กระบวนการก่อนหน้ากำลังทำงานอยู่และขั้นตอนที่เปิดตัวในภายหลังจะรอให้กระบวนการแรกดำเนินการเสร็จสิ้น

Objective สร้างโปรแกรมที่สามารถ รับคำร้องขอจากโปร เซสได้ตลอดเวลาแต่ละคำร้องขอต้องใช้เวลานานเป็นวินาทีตามที่ผู้ใช้ต้องการและเมื่อโพรเซสถูกดำเนินการแล้ว โพรเซสอื่นสามารถเข้าได้ ต้องรอให้อันก่อนหน้าเสร็จก่อน เป็นต้น อย่างต่อเนื่อง. ผู้ใช้สามารถเพิ่มคิวของกระบวนการต่อไปได้

ฉันได้ลองใช้รหัสแล้ว แต่ไม่สามารถให้กระบวนการดำเนินการเพื่อรอรหัสก่อนหน้า และผู้ใช้สามารถเข้าสู่กระบวนการต่อไปได้ เมื่อฉันเพิ่ม join() โปรแกรมจะหยุดจนกว่ากระบวนการจะเสร็จสิ้น แต่เป้าหมายคือให้ผู้ใช้สามารถเพิ่มกระบวนการได้มากเท่าที่ต้องการเมื่อใดก็ตามที่พวกเขาต้องการ แม้ว่าจะมีกระบวนการอื่นที่ทำงานอยู่โดยการสร้างคิวประเภทFIFO

from yachalk import chalk
import queue
import threading
import time
ids = 0

def addProcess():
    user = input(chalk.gray("Username:   "))
    nameOperation = input(chalk.blue("Operation:   "))
    timeOperation = int(input(chalk.blue("Operation time:   ")))
    print(f"The operation #{ids} will takes {timeOperation} seconds")

    def process():
        time.sleep(timeOperation)
        print(chalk.green(f"\n Operation {nameOperation} has been successfully completed ID #{ids}"))
        print(chalk.green(f"Time {timeOperation} seconds"))
        print(chalk.green(f"Username: {user}\n"))

    th1 = threading.Thread(target=process)
    th1.start()
    th1.join()

while True:

    inputMenu = input(chalk.blue("Select an option: \n Add process // 1 // \n Close program // 2 // \n "))
    if inputMenu == "1":
        ids += 1
        addProcess()
    if inputMenu == "2":
        exit()

ไม่พบคำตอบ