Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0

    Chạy nhiều tiến trình tuần tự theo danh sách

    Mình cần chương trình chạy tuần tự từ trên xuống dưới theo danh sách có sẵn, và chạy nhiều tiến trình.
    VD: Danh sách có 1,2,3,4,5,6. Cho chạy 2 tiến trình cùng lúc
    Chương trình sẽ bắt đầu chạy 1,2. Sau khi 1 xong sẽ chạy 3, sau khi 2 xong sẽ chạy 4....
    Khi mình dùng parallel.for/foreach chương trình chạy nhiều tiến trình nhưng lại chạy ko tuần tự: chạy 1,3; xong lại chạy 2,4...
    1 vấn đề nữa là khi chương trình đang chạy mình muốn thêm vào ds và muốn chương trình chạy tiếp tục những file thêm. Nhưng khi mình thêm thì chương trình vẫn chỉ chạy đến cuối ds cũ thôi.
    Giúp mình với [IMG]images/smilies/biggrin.png[/IMG]. Thanks

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Có phải bạn đang noi về AutoResetEvent và ManualResetEvent k?

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi manasuke
    Mình cần chương trình chạy tuần tự từ trên xuống dưới theo danh sách có sẵn, và chạy nhiều tiến trình.
    VD: Danh sách có 1,2,3,4,5,6. Cho chạy 2 tiến trình cùng lúc
    Chương trình sẽ bắt đầu chạy 1,2. Sau khi 1 xong sẽ chạy 3, sau khi 2 xong sẽ chạy 4....
    Khi mình dùng parallel.for/foreach chương trình chạy nhiều tiến trình nhưng lại chạy ko tuần tự: chạy 1,3; xong lại chạy 2,4...
    1 vấn đề nữa là khi chương trình đang chạy mình muốn thêm vào ds và muốn chương trình chạy tiếp tục những file thêm. Nhưng khi mình thêm thì chương trình vẫn chỉ chạy đến cuối ds cũ thôi.
    Giúp mình với [IMG]images/smilies/biggrin.png[/IMG]. Thanks
    * Giải thuật:

    B1> Danh sách file
    B2> Bắt đầu file (1) => Chia danh sách thứ tự trong file (1) thành 2 danh sách theo tính chẵn lẽ
    B3> Khởi tạo 2 tiến trình chạy 2 danh sách cùng lúc
    B4> Dùng 2 cờ hiệu bool cho 2 tiến trình, khi và chỉ khi 2 cờ hiệu nhận biết 2 tiến trình kết thúc thì lặp qua file kế tiếp => khởi tạo 2 tiến trình khác với file 2 ở [B2] => cho đến hết danh sách file [B1]
    B5> Xong

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi nam.phong
    Có phải bạn đang noi về AutoResetEvent và ManualResetEvent k?
    Có vẻ rất giống, nhưng mà mình đọc ví dụ chẳng hiểu gì cả

    Trích dẫn Gửi bởi hero4vn
    * Giải thuật:

    B1> Danh sách file
    B2> Bắt đầu file (1) => Chia danh sách thứ tự trong file (1) thành 2 danh sách theo tính chẵn lẽ
    B3> Khởi tạo 2 tiến trình chạy 2 danh sách cùng lúc
    B4> Dùng 2 cờ hiệu bool cho 2 tiến trình, khi và chỉ khi 2 cờ hiệu nhận biết 2 tiến trình kết thúc thì lặp qua file kế tiếp => khởi tạo 2 tiến trình khác với file 2 ở [B2] => cho đến hết danh sách file [B1]
    B5> Xong
    Vậy là 2 tiến trình ko được làm lệch pha, tiến trình 1 xong phải chờ tiến trình 2 xong. Giả sử công việc của tiến trình 2 hơi lâu, mình muốn tiến trình 1 vẫn sẽ làm tiếp ko cần đợi.

  5. #5
    Trích dẫn Gửi bởi manasuke
    Có vẻ rất giống, nhưng mà mình đọc ví dụ chẳng hiểu gì cả


    Vậy là 2 tiến trình ko được làm lệch pha, tiến trình 1 xong phải chờ tiến trình 2 xong. Giả sử công việc của tiến trình 2 hơi lâu, mình muốn tiến trình 1 vẫn sẽ làm tiếp ko cần đợi.
    * Lệch pha hay không thì tùy bạn thôi xử lý danh sách file và lấy tính chẵn lẽ của tất cả các file hoặc nếu thêm files(Runtime) thì cập nhật lại 2 danh sách chẵn lẽ trong lúc tiến trình vẫn chạy => tôi chỉ đưa ra ví dụ cho giải thuật xử lý xong 1 file rồi đến file khác. Còn xử lý lệch tôi làm trên hàng trăm file cùng lúc cũng là chuyện bình thường với giải thuật này.

    P/S: Với câu hỏi trong chủ đề thì dường như bạn vẫn chưa làm được chạy đúng trình tự 2 tiến trình. Làm trước cái nhỏ cho rành, nhừ tử đi đã rồi sẽ ngấm dần lên giải thuật cao cấp hơn. Chưa học bò đã lo học chạy roài... Đốt ngắn giai đoạn như thế coi chừng tẩu hỏa nhập ma [IMG]images/smilies/biggrin.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Xem link này có giúp ích gì ko:
    http://www.codeproject.com/Articles/...onization-in-C

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •