01/10/2018, 10:51

Return một giá trị trong threading python?

Giả sử em viết một chương trình tính diện tích HV có hai hàm
Hàm thứ nhất là lấy giá trị và trả về giá trị cho hàm thứ hai tính diện tích HV.

Nhưng em muốn sử dụng threading để trả về giá trị thì thế nào ạ ?

Em đang học cái threading python tài liệu về phần này hiếm quá tìm mà nó nói không rõ lắm bác nào pro python biết mấy cái threading này giúp em với.

Em cám ơn.

*grab popcorn* viết 12:55 ngày 01/10/2018

Mình không rành Python nhưng search thử ra cái này

stackoverflow.com
wim

how to get the return value from a thread in python?

python, multithreading
asked by wim on 03:20AM - 01 Aug 11

Bạn làm theo xem có ra kq đúng mong đợi không?
@thanhtrung2314 Biết cái này không giúp bạn ấy với.

Nguyễn Hiến viết 12:52 ngày 01/10/2018

Cám ơn bạn nhé để mình coi thử.

Nguyễn Hiến viết 13:04 ngày 01/10/2018

Chán quá xài multithreading mà không return được kết quả thì làm sao chia nhỏ công việc được haizzzz.

Henry viết 13:06 ngày 01/10/2018

Thì kiếm cách khác

*grab popcorn* viết 12:58 ngày 01/10/2018

Bạn thử không được hả :3
Hmmm v mình nghĩ là có cách này:

Tạo 1 global directory: threadReturnValue<threadId, returnValeu>

Mỗi lần bạn muốn return thì kiểu threadReturnValue[threadId] = returnValue;

get ra thì threadReturnValue[threadId]

Còn ko bạn cứ search: thread return value python mình thấy cũng có vài cách dùng Queue.

Henry viết 12:59 ngày 01/10/2018

Mình không rành lắm về threading này. Bạn thử cách này xem sao không biết nó chạy được không.

result = None  # khởi tạo giá trị mặc định biến bạn muốn nhận kết quả
result = t.start() # bạn chạy cái thread
while result is None:  # có nghĩa là result chưa nhận được kết quả từ hàm
    # bạn tự ước lượng thời gian cần để cái thread
    # có thể return value cho bạn
    # hoặc có thể dùng continue hoặc pass
    time.sleep(0.5)
else:   # nếu khác None, có nghĩa result đã nhận được value return
    # làm những gì cần với result này
    print("result of threading's return is", result)
Nguyễn Hiến viết 13:06 ngày 01/10/2018

Cám ơn các bạn mình xài cái
Queue() trong python rồi sử dụng nó hệt như một cái global var thế return được roài

Bài liên quan
0