Đúng là cả 2 đều sử dụng để tận dùng hết
CPU resource nhưng Process mới tận dụng hết số core, Thread để tối ưu số task thực thi được trên 1 core. Mình thách bạn xài mỗi multithread để xài hết số CPU core đấy, còn vấn đề optimize như mình ban đầu nếu bạn không biết chrome code chạy ra sao => cứ dùng process để scale cho dễ vì thường 1 chrome sẽ chạy hết 1 core rồi thì bạn xài Thread để optimize gì khúc này. Đính kèm cái hình phân biệt rõ giữa cả 2 nha, còn vì sao 1 Process có thể làm nhiều việc 1 lúc thì thiên về instruction
SIMD hoặc
SISD của low level code.
ref:
Computer Architecture | Flynn's taxonomy - GeeksforGeeks (https://www.geeksforgeeks.org/computer-architecture-flynns-taxonomy/)
Xem tệp đính kèm 2127461
- "Đúng là cả 2 đều sử dụng để tận dùng hết
CPU resource nhưng Process mới tận dụng hết số core" => tận dụng hết
CPU resource chính là tận dụng hết số core CPU chứ còn gì bạn.
- mình đã đọc qua reference trong comment của bạn, bài viết chỉ nói về các kiểu kiến trúc máy tính Michael Flynn, chứ không có nói tới multiprocess có thể tận dụng được tối đa số core CPU còn multithread thì không. Các máy tính hiện đại bây giờ hầu hết đều theo kiến trúc
MIMD, và việc có thể nhiều thread được xử lý parallel ở nhiều core cpu tại một thời điểm là điều quá bình thường.
"1 Process có thể làm nhiều việc 1 lúc thì thiên về instruction
SIMD hoặc
SISD của low level code." => 1 thread có thể làm nhiều việc 1 lúc, ý của bạn là gì, bạn có thể diễn đạt rõ hơn được không.
- Mình không nói về vấn đề sử dụng của bạn kia trong trường hợp chrome, mình chỉ muốn phản biện lại ý kiên của bạn cho rằng, nếu sử dụng multithread thì không thể tận dụng hết số core của CPU.
- Theo mình bản chất của phần cứng máy tính không có khái niệm process hay thread, đó đều là khái niệm của phần mềm. Với phần cứng chỉ cần thanh ghi Program counter đang trong đến vùng nhớ của instruction nào thì nó sẽ tự động fetch instruction đó về thanh Instruction Register để tự động tính toán. Vì vậy ở đây bạn có thể giải thích vì sao không thể có nhiều threads cùng chạy trên nhiều cores khác nhau?
Còn về vấn đề nhiều threads của một tiến trình có thể cùng được xử lý trên nhiều core khác nhau. Mình trích ra một đoạn trọng phần mở đầu chương multithread của cuốn sách nổi tiếng operating system concept có nói như sau:
"A thread is a basic unit of CPU utilization; it comprises a thread ID, a programcounter, a register set, and a stack. It shares with other threads belongingto the same process its code section, data section, and other operating-systemresources, such as open files and signals. A traditional (or heavyweight) process has a single thread of control.
If a process has multiple threads of control, it can perform more than one task at a time."
Bạn có thể đọc thêm về tài liệu này.