Tạo N thread, mỗi thread phụ trách in đúng 1 số từ 1 đến N. Yêu cầu kết quả in ra theo đúng thứ tự 1 2 3 ... N (cách nhau bởi 1 dấu cách, kết thúc bằng newline).
lock chung và một biến next (số kế tiếp cần in).synchronized (lock) đợi tới khi next == myNumber (dùng lock.wait()).next, gọi lock.notifyAll().join()), main in ra StringBuilder.Lưu ý: KHÔNG được in trực tiếp trong run() để tránh interleaving không xác định — ghi vào StringBuilder chung trong khối synchronized.
1 ≤ N ≤ 100
Một dòng: 1 2 3 ... N.
Ví dụ:
Đầu vào:
5
Đầu ra:
1 2 3 4 5
Giải thích:
Đầu vào:
1
Đầu ra:
1
Giải thích:
Đầu vào:
10
Đầu ra:
1 2 3 4 5 6 7 8 9 10
Đầu vào:
20
Đầu ra:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Đang tải editor...