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.

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

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.

5 Likes

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

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.

Thì kiếm cách khác :smile:

2 Likes

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] :smiley:

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.

4 Likes

Mình không rành lắm về threading này. Bạn thử cách này xem sao :smile: 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)
4 Likes

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 :grinning:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?