Friday, May 22, 2015

Single Thread và Multi-threads

  • Thread: Trong một môi trường vi tính, thread có thể như là một danh sách liệt kê những dữ kiện, công việc phải làm theo thứ tự trước sau. Môi trường single thread là một môi trường vi tính chỉ có 1 thread mà thôi. Suy ra, môi trường multi-threads là môi trường ứng dụng nhiều threads cùng một lúc.
  • Thế single thread hay multi-threads tốt hơn? Tùy theo ứng dụng của môi trường vi tính. Với nhiều tính toán hiểm hóc (tính số nguyên tố chẳng hạn) multi-threads tốt hơn, tuy nhiên ứng dụng IO như lập trình mạng single thread - non-blocking IO thực dụng hơn.
  • Tưởng là càng nhiều threads càng tốt chư’? Tùy. Một điểm bất lợi cho nhiều threads là phải bảo quản hệ thống threads. Càng nhiều thread thì việc bảo quản càng phức tạp hơn, tỉ lệ thuận với độ polynomial.
  • Thế xưa chưa có node.js thì làm sao? Thì hệ thống multi-threads được dùng nhưng khi website trở nên to, nhiều người truy cập, nhiều IO multi-threads không còn thực tế nữa vì hệ thống bảo quản threads còn phức tạp, tốn nhiều công hơn là công dụng của website.
  • Thế Single Thread có gì lợi hơn? Ít nhất là không tốn nhiều công để bảo quản hệ thống threads bởi chỉ có 1 thread. Ngoài ra môi trường 1 thread dễ khuếch trương (scale up) hơn và rẻ hơn là với multi-threads.
  • Thế chỉ có 1 thread thì làm sao take care nhiều jobs? Chỉ việc làm 1 thread chạy nhanh hơn thôi. Nếu hệ thống quá to thật to thì người ứng dụng hệ thống nhiều threads nhưng hợp lại như chỉ chạy có 1 thread. Cũng kiểu như bện nhiều dây tơ nhỏ thành một dây thừng lớn vậy đó. Tùy theo bao nhiêu nặng thì bện càng nhiều tơ. Kết quả thì cũng chỉ có 1 thừng.
  • Thế kiểu 1 thread này người ta đã biết lâu rồi sao bây giờ mới thực hiện? Hiểu biết về hiện tượng trên lý thuyết này đã có từ lâu nhưng những ai biết về hiện tượng này thì lại không thông suốt về ngôn ngữ lập trình; người thông suốt về ngôn ngữ lập trình lại thiếu hiểu biết về compilers, interpreters; những người biết về compilers interpreters lại không rành về vấn đề của threads. Vòng vòng. Cho đến khi ngôn ngữ JavaScript trưởng thành, Google chế ra V8 Engine cho JavaScript và Ryan Dahl chụp lấy cơ hội này tạo ra node.js.
  • Thế non-Blocking IO ăn thua gì đến single thread? Hai sự kiện này tương hỗ với nhau. non-Blocking IO sẽ được đề cập trong những posts tới.

Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 comments

:) :-) :)) =)) :( :-( :(( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ :-$ (b) (f) x-) (k) (h) (c) cheer

 
Posts RSSComments RSSBack to top
© 2011 Tự học NodeJS ∙ Designed by BlogThietKe
Released under Creative Commons 3.0 CC BY-NC 3.0