30/09/2018, 17:18
Sự khác nhau giữa thread và process?
- các bạn cho mình hỏi sự khác nhau giữa thread và proccess. Do mình đi phỏng vấn ở công ty, người ta hỏi câu này mình không biết trả lời nên nhờ mấy bạn giúp.
- thêm 1 câu nữa, khi nào thì thật sự dùng đến thread, mình thấy nếu làm những chương trình (game) nhỏ cần sự lặp đi lặp lại thao tác thì có thể dùng timer để xử lý thay vì thread vậy khi nào thread nên dùng.
cảm ơn các bạn đã ghé qua!
Bài liên quan
Đơn giản ngắn gọn nhất thì thread nằm ở mức Application còn Proccess nằm ở mức OS.
Nếu làm Java thì đọc thêm tài liệu của chính chủ: https://docs.oracle.com/javase/tutorial/essential/concurrency/procthread.html
Mặc định đã dùng các ngôn ngữ lập trình hỗ trợ thread là bạn đã dùng đến 1 thread chính gọi là MainThread rồi.
-> Nói cách khác khi bạn có một tác vụ có thời gian thực thi lớn thì bạn cần đến một thread nữa.
Mình không chắc chắn hiểu sâu và chuẩn vấn đề này.
Theo mình hiểu khi nhắc đến Thread, người ta nhắc vấn đề này ở mức độ programming language. Một số ngôn ngữ hỗ trợ multi thead (multithreading languages) như java, c#, còn một số thì không như PHP.
Multi thead là cùng thời điểm ngôn ngữ hỗ trợ bạn tạo ra các luồng chạy song song để xử lý các công việc cùng thời điểm (tăng performance xử lý - tốn CPU)
Process lại nằm ở mức độ OS, nếu bạn dùng linux, khi gõ lệnh “ps aux” bạn sẽ thấy hiện lên list các process đang chạy của máy. Mỗi process được phân biệt = processID. Nếu không thích process chạy bạn có thể kill {processID} để dừng việc chạy của service.
Nếu ngôn ngữ không hỗ trợ multi threading, điều đó không có nghĩa là ứng dụng của bạn không hỗ trợ các xử lý song song. Thông thường OS sẽ có các app để quản lý và hỗ trợ ứng dụng bạn xử lý các concurrent requests.
Một điều chú ý là thread không thể tác động được tới UI (giao diện) bạn nhé. Để update giao diện trong thread cần phải dùng cơ chế callback (handle)
:’( Bạn đang nói đến ngôn ngữ lập trình nào vậy?
Chắc là Java bác ạ
Java thì default bạn đã chạy trên một thread gọi là Main thread rồi. Sao lại nói không thể tác động đến UI.
Cái mà bạn nói giống như Android vậy. Mà Android nó gọi là MainUIThread. Cũng là thread mà…
E đang gia cát dự mà a?