Trang 1 / 3 123 LastLast
Hiển thị kết quả từ 1 đến 10 / 25
  1. #1
    Tham gia
    24-12-2003
    Bài viết
    134
    Like
    0
    Thanked 0 Times in 0 Posts

    Nói nhỏ nè ! Lập trình đa tuyến (MultiThreading)

    Xin các huynh chỉ giúp đệ cách thức lập trình MultiThreading. Nó có ích lợi gì không...? Có thể kết hợp nhiều máy tính trên mạng để cùng lúc giải quyết 1 bài toán không?
    Xin chân thành cảm ơn!
    Quote Quote

  2. #2
    Tham gia
    25-10-2003
    Bài viết
    1,810
    Like
    1
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi hoangleo
    Xin các huynh chỉ giúp đệ cách thức lập trình MultiThreading. Nó có ích lợi gì không...? Có thể kết hợp nhiều máy tính trên mạng để cùng lúc giải quyết 1 bài toán không?
    Xin chân thành cảm ơn!
    MultiThreading theo em được biết thì có có thể tận dụng tối đa khả năng của hệ thống (năng suất CPU). Có thể phân luồng và chạy cùng lúc đồng thời nhiều hoạt động chiếm nhiều quyền CPU, Nâng cao mức ưu tiên cho 1 quá trình nào đó lên....Cũng hay lắm. Có gì thì anh cứ Post tiếp.

  3. #3
    Tham gia
    24-11-2003
    Location
    Đồng Tháp
    Bài viết
    100
    Like
    0
    Thanked 0 Times in 0 Posts
    Thằng quỉ nhỏ ITBaby này, cái gì nó cũng biết hết. Póa tay .. khà .. khà.
    Cái này mà viết bằng vb là mệt xỉu chứ không phải chơi à nghe. vấn đề ở chổ là làm sao ta phải giữ sự kết nối xuyên suốt và ổn định giữa các máy, nếu không lở 1 máy nào trở chứng thì kể như toi công, bài toán sẽ đi núi mất khà .. khà ..

  4. #4
    Tham gia
    25-10-2003
    Bài viết
    1,810
    Like
    1
    Thanked 1 Time in 1 Post
    Cảm ơn anh đã quá khen. Em chỉ nói lại những gì mà em biết được do lang thang trên Net thui. Nếu viết = VB thì cũng không đến nỗi mệt xỉu. Tại vì mình có thể dùng API để Set quyền ưu tiên ( priority ) cho Thread nào đó, dừng việc thực thi Thread, trong thi thực hiện Thread thì mình có thể làm những công việc khác ( Khỏi thèm đếm xỉa đến Cái Thread đang thực thi vì nó đã được xem như là 1 hoạt động riêng biệt rùi ). Nhưng để ứng dụng nó vào 1 bài toán cụ thể nào đó thì cũng không phải là dễ. Anh HoangLeo cứ đưa thử ra ý tuởng cần giải quyết vấn đề gì, bài toán gì mà phải cần qua mạng zậy. Cho em biết với.

  5. #5
    Tham gia
    15-09-2002
    Location
    Tp.Hcm
    Bài viết
    1,171
    Like
    0
    Thanked 2 Times in 2 Posts
    Trong khi quan điểm chính của MT là speed, suppend và resume liên tục sẽ giảm tốc độ, và nếu quá lạm dụng có khi còn chậm hơn Single thread. cái mà bác buaxua nói đó là sử dụng sức mạnh tổng hợp của nhiều máy (cái này không phải MT), MT là như ITbaby nói, đó là sử dụng nhiều thread chia nhau làm, mỗi thread 1 việc.

    việc phân chia công việc của thread là phần chính, nó quyết định nên 1 chương trình chạy nhanh hay chậm. thường chúng ta không nên phân chia theo số lượng (không phải càng nhiều thread nhỏ thì càng nhanh đâu) mà phân chia theo khối lượng công việc và thời gian có thể thực hiện. quan trọng là tránh để tình trạng 1 thread phải chờ 1 thread khác làm xong mới thực hiện tiếp được hay như vấn đề đồng bộ hóa, tranh giành resource dẫn đến deadlock ....

    VD về MT: 1 chương trình đánh cờ thì trước khi có công nghệ MT, người ta cho máy chờ khi người dùng đánh, sau đó mới lượng giá, gen move ... nhưng nay 1 số chương trình đã tạo thêm 1 thread, cho nó chạy liên tục (kể cả khi người dùng đi) để tận dụng hết thời gian lãng phí, tăng AI của máy

    để ứng dụng tốt được MT, bạn phải hiểu rõ cách làm việc của chương trình bạn muốn tạo. namespace của MT nếu nhớ không lầm là System.MultiThread <--- không nhớ rõ

  6. #6
    Tham gia
    05-09-2002
    Location
    Cần Đước - Long An
    Bài viết
    1,547
    Like
    0
    Thanked 5 Times in 5 Posts
    Tốt nhất là viết đa tuyến trên .Net. .Net support rất tốt mấy cái vụ này, tốc độ lại ổn định.
    Nói sơ về đa tuyến: cái này giống như là mô hình thu nhỏ của system xử lý từng ct đang chạy vậy. System sẽ trao quyền cho mỗi thread chạy trong một vài lệnh hay một vài phần % second.sau đó thì đến cái khác <- nâng cao hiệu năng sử dụng nhưng bù lại thì CPU thường quá tải nếu tốc độ hơi thấp nên đôi lúc sẽ làm chết hệ thống nếu không xử lý cẩn thận

  7. #7
    Tham gia
    24-12-2003
    Bài viết
    134
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn mấy huynh đã nhiệt tình trả lời như vậy. Theo đệ được biết thì trong .NET hỗ trợ Multithread khá tốt. Nhưng ở đây đệ muốn tìm hiểu bắt đầu từ VB6 trở đi để hiểu sâu hơn. Mục tiêu của đệ là áp dụng kỹ thuật MultitThread để sử dụng trong việc mã hóa file cho các thuật toán phức tạp như RSA chẳng hạn. Thật ra, đệ tìm hiểu vấn đề này để làm nền tản cho việc tìm hiểu sang khía cạnh MPI (đây chính là kỹ thuật lập trình sử dụng tối đa công xuất của nhiều máy chứ không phải là một máy local nữa). Nếu các huynh đã làm thử một bài nào đó về Multithread bằng VB, chẳng hạn tính giai thừa chẳng hạn, xin các huynh giới thiệu Source code dùm hen.

    Đệ rất cảm kích tấm lòng của các huynh!

  8. #8
    Tham gia
    25-10-2003
    Bài viết
    1,810
    Like
    1
    Thanked 1 Time in 1 Post

    Vui lắm !

    Quote Được gửi bởi hoangleo
    Cám ơn mấy huynh đã nhiệt tình trả lời như vậy. Theo đệ được biết thì trong .NET hỗ trợ Multithread khá tốt. Nhưng ở đây đệ muốn tìm hiểu bắt đầu từ VB6 trở đi để hiểu sâu hơn. Mục tiêu của đệ là áp dụng kỹ thuật MultitThread để sử dụng trong việc mã hóa file cho các thuật toán phức tạp như RSA chẳng hạn. Thật ra, đệ tìm hiểu vấn đề này để làm nền tản cho việc tìm hiểu sang khía cạnh MPI (đây chính là kỹ thuật lập trình sử dụng tối đa công xuất của nhiều máy chứ không phải là một máy local nữa). Nếu các huynh đã làm thử một bài nào đó về Multithread bằng VB, chẳng hạn tính giai thừa chẳng hạn, xin các huynh giới thiệu Source code dùm hen.

    Đệ rất cảm kích tấm lòng của các huynh!
    Em đã từng làm RSA rùi, chạy khá nhanh. Nhưng rất tiếc lại là = Pascal ( Dĩ nhiên là trong Dos làm gì có MultiThread). Đúng là nếu ứng dụng MultiThread cho giải thuật này thì chương trình mã hoá sẽ hoạt động hiệu quả hơn nhiều ( Có nhiều công đoạn đò hỏi việc thực thi lâu). Còn về việc ứng dụng MultiThread cho tính giai thừa thì theo em nghĩ thuật toán tính giai thừa không nhất thiết phải ứng dụng MT đâu. Không lả mỗi 1 công đoạn tính giai thừa thì ta lại tạo 1 Thread cho nó à. Như thế thì chỉ cần 1 số giai thừa nhỏ thui thì cũng đủ đứng máy rùi (Đó là chưa nói đến thuật toán RSA thì phép tính giai thừa không phải dừng lại ở con số vài tỉ như các số khác mà là trên những dãy số hàng trăm kí tự) . Nhưng ta có thể phân hoạch cho toàn bộ quá trình tính giai thừa là 1 Thread thì được ( để mình rảnh tay làm các công việc khác í mà). Em có Gởi kèm 1 file .zip ví dụ về Thread của VB 6. Anh cứ xem thử là hiểu liền hà.
    Attached Files

  9. #9
    Tham gia
    24-12-2003
    Bài viết
    134
    Like
    0
    Thanked 0 Times in 0 Posts
    Huynh ITBaby hiểu lầm ý của đệ rồi. Bài toán giai thừa chỉ là một ví dụ để ứng dụng Multithread cho cụ thể. Giả sử ta tính giai thừa 100 thì còn dễ. thế giai thừa của một con số khoảng 50 chữ số thì như thế nào? Vì vậy ở khía cạnh Demo Multithread thì giả lập làm thử với phép tính 300 giai thừa thử...

    hihic.. sao các huynh đâu hết rùi... để ITBaby bàn ra không hà... các huynh mau giúp đỡ đệ với...

  10. #10
    Tham gia
    25-10-2003
    Bài viết
    1,810
    Like
    1
    Thanked 1 Time in 1 Post
    Chòi! Cha nội này hông thích tui trả lời. Kệ trả lời bài cuối rùi thui cũng được. Ý của em nói là vầy nè. Cái tính giai thừa thì dùng MultiThread được chứ có sao đâu. Nhưng nhớ là chỉ Thread bao quát toàn bộ quá trình tính toán thui. Chứ cứ mỗi quy trình tính giai thừa con mà tạo ra 1 Thread thì chỉ có nước đứng máy. Zui zui cái này nghen. Hùi xưa em làm trong Pascal tính được giai thừa của 1 chuỗi số dài bất kỳ có > 255 kí tự số ...and more. Em đã Post cái này bên Box pascal lâu rùi đó. Các anh có thể Down về dùng chơi. Hì hì ! Tính giai thừa của chuỗi số giả tỉ như là 100 kí tự thì mất có vài giây à.

    Còn anh Hoangleo muốn tính giai thừa số lớn thì phải mô phỏng các số cần tính giai thừa đó thành chuỗi số thì mới nâng cao mức độ bảo mật của RSA lên được. Anh có thể tham khảo cái Pascal của em chơi ( Có source đó)
    Chào tạm biệt các anh
    Được sửa bởi ITbaby lúc 12:06 ngày 27-12-2003

Trang 1 / 3 123 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •