Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Java] Pipeline 3 phase với CountDownLatch

    Cho mảng N số nguyên. Triển khai 3 phase bằng CountDownLatch:

    • Phase A (N task song song): tính b[i] = a[i] + 1, mỗi task xong thì countDown latchA.
    • Main thread await latchA, kiểm tra (im lặng) rồi mở phase B.
    • Phase B (N task song song): tính c[i] = b[i] * 2, gọi countDown latchB.
    • Main thread await latchB.
    • Phase C: tính tổng c[] (chạy trên main). Mỗi thread CHỈ ghi vào ô riêng (b[i] hoặc c[i]). In tổng cuối cùng.
    • Định dạng đầu vào:

      Dòng 1: N (1 ≤ N ≤ 500). Dòng 2: N số nguyên |a_i| ≤ 10^4.

    • Ràng buộc đầu vào:

      1 ≤ N ≤ 500

    • Định dạng đầu ra:

      Một số nguyên — tổng của c[] sau hai phase.

    Ví dụ:

    Đầu vào:

    5
    1 2 3 4 5
    

    Đầu ra:

    40

    Giải thích:

    b=[2,3,4,5,6], c=[4,6,8,10,12], tổng=40.

    Đang tải editor...