thắc mắc Concurrency, Parallel, Asynchronous, Multithreading khác nhau như thế nào?

  • Người tạo chủ đề Người tạo chủ đề o0alvin0o
  • Ngày bắt đầu Ngày bắt đầu
K hiểu sao cứ nhắc đến chủ đề về concurrency, parallel các kiểu thì lại cãi nhau loạn xạ cả lên. Mỗi người nói 1 ý. Đúng kiểu thầy bói xem voi, :beat_shot:
Thực ra thì combat nhiều thì chính tỏ thread hay và đôi khi cả toxic. Nhưng mà nói chung là nó hay nên mới đủ để người ta nắm rõ, tìm hiểu rồi combat.

Nghe được nhiều góc nhìn, mỗi tội là chủ yếu là debate nên cuối cùng chẳng bao giờ có ý kiến chung cả :beat_brick:
 
Tôi vẫn đợi anh thiên tài nào đó chê tôi tào lào vào trả lời câu hỏi của tôi :D
Anh thiên tài lúc nào cũng phải đệm thêm mấy cuốn sách tây tàu vào đâu rồi :D anh thiên tài giao tiếp trực tiếp vs phần cứng ko cần qua windows đâu rồi :D
Kiến thức tôi hạn hẹp, tôi chỉ học từ kinh nghiệm bản thân nên ko bằng anh thiên tài trên đây, vẫn mong anh giải đáp thắc mắc trên đây, bàn về bất đồng bộ, song song mà ko nói gì về phần cứng thì chả khác nào cưỡi ngựa xem voi :D
Thực chất mọi thứ lập trình viên code là đang làm việc với hệ điều hành hết sao? cái câu lệnh tạo file được system call cung cấp thì ok nhờ hệ điều hành, còn câu lệnh a = b + c thì tôi cũng phải nhờ hệ điều hành làm nốt hả? Hệ điều hành cung cấp cho ta cách để làm những việc như tạo file, tạo socket, ... và expose chúng ra qua system call, và system call sẽ cung cấp API để các ngôn ngữ như Python, Java ... sử dụng, để người lập trình viên có thể dễ dàng hơn khi code, và không phải làm tedious works. Nhưng không phải cái gì chương trình cũng là phải nhờ OS làm, có rất nhiều instructions khác như a = b + c chẳng hạn thì CPU sẽ fetch trực tiếp từ code segment của process đó rồi thực thi luôn mà không cần thông qua một process thứ 3 nào nữa.
cái này OS lo chứ k phải lập trình viên lo, nhiệm vụ của nó là điều phối thực hiện threads, processes sao cho tối ưu được phần cứng có sẵn.
đây là những gì tôi viết ra, ông cần tôi giải thích ở điểm nào?

Tất nhiên process muốn được xử lý thì phải có OS lập lịch, rồi phối tài nguyên (CPU, Memory, I/O device) để execute process. Cái này ai mà k biết, cái tôi nói là sau được OS đã thực hiện quá trình lập lich và phân phối tài nguyên rồi, Trong quá trình CPU fetch từng instruction của process ra để execute, có phải instruction nào cũng cần tới hệ điều hành để thực hiện hay không?

Câu trả lời của tôi là không, chỉ có những instruction kiểu như tạo file, in ra màn hình, ... Thì mới cần OS, vì OS cung cấp cho ta một số functions để làm điều đó dễ dàng hơn. Còn những instruction như
Thì ALU của CPU sẽ thực hiện luôn chứ cần thì đến OS?

Tôi tranh luận với ông, tôi có phản biện lại từng ý của ông 1 các rõ ràng, có nêu ra những nguồn tham khảo tin cậy để phản biện. Còn ông chỉ nói là ông kinh nghiệm đi làm như vậy thì nó như vậy, trong khi kinh nghiệm đi làm của ông là làm MMO, hồi tháng 5 còn lên VOZ kêu hoang mang các kiểu, kiệm nghiệm và kiến thức đều k có mà luôn thích lên chỉ bảo và nói ra một cách chắc nịch, bề trên. Tôi k muốn công rep ông, và công kích cá nhân nữa, nhưng phải vứt vào đây để những bạn đang muốn tìm hiểu về những nội của thread này sẽ không đọc những comment nghe có vẻ đúng đúng của ông (Vì ông nói 1 số cái tào lao (vì nó từ kinh nghiệm của ông, 4 tháng) chèn thêm một số cái hiển nhiên đúng, được phổ biến => nghe có vẻ đúng đúng) mà tin ngay.

Screen Shot 2023-10-19 at 17.54.47.png
 
Sửa lần cuối:
Thế nên tôi mới nói lập trình song song thực sự nó chỉ có ở lập trình nhúng, khi ông đụng chạm trực tiếp trên con chip, chứ ông ngồi viết phần mềm trên hệ điều hành mà đòi song song, ông nghe có vô lý vcl ra ko
vậy ông đang hiểu lập trình song song là gì?

Lập trình song song (parallel programming) là việc sử dụng nhiều CPU hoặc core xử lý cùng một lúc để thực hiện các tác vụ đồng thời. Mỗi CPU hoặc core sẽ giải quyết một tác vụ riêng biệt. Điều này đồng nghĩa với việc chia nhỏ tác vụ lớn thành các phần nhỏ và thực thi chúng trên các CPU hoặc core khác nhau đồng thời. Lập trình song song có thể mang lại hiệu suất cao và tăng tốc độ thực thi chương trình
Tôi thì tôi đang hiểu như bác này có nói đây. Nếu Process được chia thành nhiều threads hoặc chia thành nhiều process con, ở một thời điểm nếu mỗi it nhất là 2 trong số những threads hoặc process con này được thực hiện đồng thời trên số core CPU tương ứng, thì nó là parallelism.

Biết tại sao thế giới người ta phải lên 64 bit chứ ko sài 32 bit ko, tại sao windows ko cài đc lên chip arm ko, tại sao mọi thứ về lập trình đều là mã nhị phân mà tại sao android lại khác windows ko, trong khi bản chất mọi thứ chỉ là 1010, học hành cho lắm vào, kinh nghiệm thì không có, chỉ đc cái giỏi search, chả đc cái mẹ gì. Vớ vẩn vcl
Ông có biết tại sao lên 64bit không? ủa đoạn này ông đang muốn nói về vấn đề gì vậy, hay ngáo ngôn?

Cái thứ 3, bất đồng bộ chạy tính toán thì gặp vấn đề gì ??
không có lỗi, đúng. Nhưng nó không có tác dụng giúp tăng performance trong trường hợp này. Trong khi đó multithread hoặc multiprocess thì lại giúp tăng performance trong chuyện này. Đó là vấn đề đó?

Cái thứ 6, ông biết ông đang nói cái gì ko, cái gì mà giao tiếp với phần cứng ko cần hệ điều hành, ông chỉ cho tôi 1 cái ví dụ phát, ông lập trình trên hệ điều hành mà lại kêu giao tiếp ko cần qua hệ điều hành, giờ tôi đó ông giao tiếp vs cái wifi mà trên win ko có driver đấy, tôi đố ông ghi đc file nếu win ko nhận ổ đĩa cứng đấy, ông giao tiếp hộ cái phần cứng mà ko có driver hộ tôi phát
Ê ông lập trình là ông chỉ có làm những việc như ghi file thôi hả? ông k tính toán hả? nếu câu lệnh của tôi là: x = 1 + 1; print(x)
Trong trường hợp này thì chỗ CPU thực hiện câu lệnh x = 1 + 1 ấy, hệ điều hành làm gì ở đây? Ông biết ông nói tôi phát?

Del mẹ có con chip chứ có gì ko lập trình đc, chứ ông nghĩ lập trình nhúng là lập trình ở đâu, hay chỉ chip trên con pc mới là chip, ăn nói vớ va vớ vẩn, hậu quả của việc học vẹt là đây chứ đâu
Ồ ha dễ ha, vậy ông chỉ giúp tôi các ông lập trình trên con chíp của cái máy tính của ông cái. Nói hộ giúp tôi cái?
 
đây là những gì tôi viết ra, ông cần tôi giải thích ở điểm nào?

Tất nhiên process muốn được xử lý thì phải có OS lập lịch, rồi phối tài nguyên (CPU, Memory, I/O device) để execute process. Cái này ai mà k biết, cái tôi nói là sau được OS đã thực hiện quá trình lập lich và phân phối tài nguyên rồi, Trong quá trình CPU fetch từng instruction của process ra để execute, có phải instruction nào cũng cần tới hệ điều hành để thực hiện hay không?

Câu trả lời của tôi là không, chỉ có những instruction kiểu như tạo file, in ra màn hình, ... Thì mới cần OS, vì OS cung cấp cho ta một số functions để làm điều đó dễ dàng hơn. Còn những instruction như

Thì ALU của CPU sẽ thực hiện luôn chứ cần thì đến OS?

Tôi tranh luận với ông, tôi có phản biện lại từng ý của ông 1 các rõ ràng, có nêu ra những nguồn tham khảo tin cậy để phản biện. Còn ông chỉ nói là ông kinh nghiệm đi làm như vậy thì nó như vậy, trong khi kinh nghiệm đi làm của ông là làm MMO, hồi tháng 5 còn lên VOZ kêu hoang mang các kiểu, kiệm nghiệm và kiến thức đều k có mà luôn thích lên chỉ bảo và nói ra một cách chắc nịch, bề trên. Tôi k muốn công rep ông, và công kích cá nhân nữa, nhưng phải vứt vào đây để những bạn đang muốn tìm hiểu về những nội của thread này sẽ không đọc những comment nghe có vẻ đúng đúng của ông (Vì ông nói 1 số cái tào lao (vì nó từ kinh nghiệm của ông, 4 tháng) chèn thêm một số cái hiển nhiên đúng, được phổ biến => nghe có vẻ đúng đúng) mà tin ngay.

Xem tệp đính kèm 2136245
thôi ko cmt nữa, xong xuôi đi lục post dở trò sỉ nhục, coi thường làm mmo :D
Thiên tài này tôi cũng ko muốn tiếp xúc làm gì :D
Lúc post sao ko tìm cái post nào tôi khoe lương mà chụp :D kaka
Thiên tài lập trình trên hệ điều hành, nhưng giao tiếp ko cần hệ điều hành, kaka thiên tài :D
 
thôi ko cmt nữa, xong xuôi đi lục post dở trò sỉ nhục, coi thường làm mmo :D
Thiên tài này tôi cũng ko muốn tiếp xúc làm gì :D
Lúc post sao ko tìm cái post nào tôi khoe lương mà chụp :D kaka
Thiên tài lập trình trên hệ điều hành, nhưng giao tiếp ko cần hệ điều hành, kaka thiên tài :D
haha tự khóc ông mông lung chứ ai sỉ nhục cái gì ông, tôi biết ngay là ông lại lôi chuyện lương ra mà, đúng bài quá còn gì haha. Kinh nghiệm k bao nhiêu mà đi chê người khác k có kinh nghiệm.
Có giỏi thì ông trả lời câu của tôi đi, từng câu một xem nào.
 
Sửa lần cuối:
vậy ông đang hiểu lập trình song song là gì?


Tôi thì tôi đang hiểu như bác này có nói đây. Nếu Process được chia thành nhiều threads hoặc chia thành nhiều process con, ở một thời điểm nếu mỗi it nhất là 2 trong số những threads hoặc process con này được thực hiện đồng thời trên số core CPU tương ứng, thì nó là parallelism.

Ông có biết tại sao lên 64bit không? ủa đoạn này ông đang muốn nói về vấn đề gì vậy, hay ngáo ngôn?


không có lỗi, đúng. Nhưng nó không có tác dụng giúp tăng performance trong trường hợp này. Trong khi đó multithread hoặc multiprocess thì lại giúp tăng performance trong chuyện này. Đó là vấn đề đó?


Ê ông lập trình là ông chỉ có làm những việc như ghi file thôi hả? ông k tính toán hả? nếu câu lệnh của tôi là: x = 1 + 1; print(x)
Trong trường hợp này thì chỗ CPU thực hiện câu lệnh x = 1 + 1 ấy, hệ điều hành làm gì ở đây? Ông biết ông nói tôi phát?


Ồ ha dễ ha, vậy ông chỉ giúp tôi các ông lập trình trên con chíp của cái máy tính của ông cái. Nói hộ giúp tôi cái?
Nguyên đoạn trả lời là tôi hiểu trình độ của thiên tài như thế nào rồi :D

Các bạn xem thiên tài của các bạn nói về kiến thức của bạn đấy nhá :D

Chip ko lập trình đc, trên máy tính chạy lệnh 1+1 ko cần qua hệ điều hành :D process chia thành nhiều thread :D

Thiên tài, quả thật trình độ này chỉ thiên tài mới biết :D
 
haha tự nói ông mông lung chứ ai sỉ nhục cái gì ông, tôi biết ngay là ông lại lôi chuyện lương ra mà, đúng bài quá còn gì haha. Kinh nghiệm k bao nhiêu mà đi chê người khác k có kinh nghiệm.
Có giỏi thì ông trả lời câu của tôi đi, từng câu một xem nào.
Tôi hiểu trình độ ông rồi, ngay câu 1+1 chạy trên cpu ko qua hệ điều hành tôi ngờ ngợ rồi, đến câu chip cpu ko lập trình đc thì tôi biết ông trình độ ngoài hành tinh cmnr, tôi ko đủ trình mà giải thích :D
Tôi thấy ông giỏi nhất là tính đàn bà, thiên tài là đây chứ đâu :D
Trc giờ tôi gặp qua bn thằng dev, thằng nào càng nói nhiều tiếng anh, là y như rằng là 1 thằng thiên tài :D 10 ông hết 10 ông như vậy :D
 
Sửa lần cuối:
Tôi hiểu trình độ ông rồi, ngay câu 1+1 chạy trên cpu ko qua hệ điều hành tôi ngờ ngợ rồi, đến câu chip cpu ko lập trình đc thì tôi biết ông trình độ ngoài hành tinh cmnr, tôi ko đủ trình mà giải thích :D
Tôi thấy ông giỏi nhất là tính đàn bà, thiên tài là đây chứ đâu :D
Trc giờ tôi gặp qua bn thằng dev, thằng nào càng nói nhiều tiếng anh, là y như rằng là 1 thằng thiên tài :D
thế ông bảo hệ điều hành làm gì đi, tôi chờ ông đây haha. Chắc ong sẽ lại bảo "không có hệ điều hành thì cái gì lập lịch cho nó chạy, không có hệ điều hành thì nó tự chạy à blalala akakak"
 
thế ông bảo hệ điều hành làm gì đi, tôi chờ ông đây haha
Vâng, tính toán 1+1 hệ điều hành ko làm gì cả, tự cpu nó biết chạy 1+1 rồi trả kết quả về phần mềm của thiên tài làm, trình độ này chỉ thiên tài mới làm đc, tôi người thường ko làm đc :D
 
Vâng, tính toán 1+1 hệ điều hành ko làm gì cả, tự cpu nó biết chạy 1+1 rồi trả kết quả về phần mềm của thiên tài làm, trình độ này chỉ thiên tài mới làm đc, tôi người thường ko làm đc :D
bí rồi chớ gì, hahaha, debate ông nói gì tôi trả lời ông câu đấy. H đến lượt ông, thì bí quá nên dở trò vịt rồi haha
 
Vâng, tính toán 1+1 hệ điều hành ko làm gì cả, tự cpu nó biết chạy 1+1 rồi trả kết quả về phần mềm của thiên tài làm, trình độ này chỉ thiên tài mới làm đc, tôi người thường ko làm đc :D
thiên tài thì không dám nhận nhưng với mấy người như ông, trình độ hiểu biết hạn hẹp mà lại bố đời, ta đây biết tuốt k cần đọc, hắng giọng để chỉ người này bày người kia, thì nên chặt đẹp cho khỏi ngứa mắt
 
thiên tài thì không dám nhận nhưng với mấy người như ông, trình độ hiểu biết hạn hẹp mà lại bố đời, ta đây biết tuốt k cần đọc, hắng giọng để chỉ người này bày người kia, thì nên chặt đẹp cho khỏi ngứa mắt

Ko, ông thiên tài thật:D ông làm đc phần mềm thế này, chạy tính toán trên hệ điều hành ko cần qua hệ điều hành, chạy trực tiếp xuống cpu, riêng cái này thì ông đã thuộc dạng ngoài hành tinh rồi :D tôi bảo đảm ko 1 ai làm đc trên windows, mấy hệ điều hành khác có cho phép giao tiếp trực tiếp vs chip ko thì tôi ko biết, nhưng ông làm đc cái này ông là bố của lập trình viên thế giới này :D
Làm đc cái này thì tôi bảo đảm, mọi thứ trên thế giới này, cái nào chạy trên hệ điều hành windows, ông hoàn toàn có thể bẻ khoá hết, trình độ này chỉ thiên tài mới có :D
Thật lòng vn mà có 1 người thế này, đủ để rạng danh rồi, tôi cũng muốn xin đoạn source đó để học hỏi :D đoạn source này sẽ giúp tôi rất nhiều sau này, giao tiếp trực tiếp vs cpu ko cần qua hệ điều hành bằng chính phần mềm chạy trên hệ điều hành đó, thật tôi rất muốn đoạn source này :D
 
Ko, ông thiên tài thật:D ông làm đc phần mềm thế này, chạy tính toán trên hệ điều hành ko cần qua hệ điều hành, chạy trực tiếp xuống cpu, riêng cái này thì ông đã thuộc dạng ngoài hành tinh rồi :D tôi bảo đảm ko 1 ai làm đc trên windows, mấy hệ điều hành khác có cho phép giao tiếp trực tiếp vs chip ko thì tôi ko biết, nhưng ông làm đc cái này ông là bố của lập trình viên thế giới này :D
Làm đc cái này thì tôi bảo đảm, mọi thứ trên thế giới này, cái nào chạy trên hệ điều hành windows, ông hoàn toàn có thể bẻ khoá hết, trình độ này chỉ thiên tài mới có :D
nội ơi, hệ điều hành để lập lich, điều phối tài nguyên, hỗ trợ làm một số công việc như ông nói ghi file, đọc file chung lại là giao tiếp với I/O device ... Còn lúc Process đang được CPU thực hiện, lúc gặp instruction tính toán đơn thuần thì theo ông Hệ Điều Hành làm gì? haha k biết đúng k, thì nhận đi chứ sao lại làm vậy, my fence.
 
nội ơi, hệ điều hành để lập lich, điều phối tài nguyên, hỗ trợ làm một số công việc như ông nói ghi file, đọc file chung lại là giao tiếp với I/O device ... Còn lúc Process đang được CPU thực hiện, lúc gặp instruction tính toán đơn thuần thì theo ông Hệ Điều Hành làm gì? haha k biết đúng k, thì nhận đi chứ sao lại làm vậy, my fence.
Haha, thì ông kêu ko cần hệ điều hành, ko cần hệ điều hành sao lại nhờ hệ điều hành lập lịch, thiên tài nói mà ko thấy nó mâu thuẫn à:D
Thế tóm lại là có chạy qua hệ điều hành có hay là không :D
 
ủa ủa h lại bẻ sang windows rồi :beat_shot::beat_shot::beat_shot:
Úi trời, tôi luôn nói nếu hệ điều hành ko cấp quyền xử lý con chip thì chả bao giờ làm đc, trên thế giới này bn hệ điều hành, làm sao tôi biết đc :D
Tôi lấy cái windows là cái thông dụng nhất, tôi ko đếm cua trong lỗ như thiên tài :D
 
Haha, thì ông kêu ko cần hệ điều hành, ko cần hệ điều hành sao lại nhờ hệ điều hành lập lịch, thiên tài nói mà ko thấy nó mâu thuẫn à:D
Thế tóm lại là có chạy qua hệ điều hành có hay là không :D
Tôi chả biết chạy ntn, tôi chạy 1+1 tôi thấy có thread id chứng tỏ hệ điều hành quản lý tính toán đó, tôi chỉ biết như vậy :D thiên tài giỏi quá chạy trực tiếp trên con cpu luôn, công nghệ real đa nên tảng là đây chứ đâu, viết code 1 lần chạy mọi nơi là đây chứ đâu:D
 
Úi trời, tôi luôn nói nếu hệ điều hành ko cấp quyền xử lý con chip thì chả bao giờ làm đc, trên thế giới này bn hệ điều hành, làm sao tôi biết đc :D
Tôi lấy cái windows là cái thông dụng nhất, tôi ko đếm cua trong lỗ như thiên tài :D
tôi chấp ông là windows lun đó my fence
Còn lúc Process đang được CPU thực hiện, lúc gặp instruction tính toán đơn thuần thì theo ông Hệ Điều Hành làm gì? haha k biết đúng k, thì nhận đi chứ sao lại làm vậy, my fence.
ông chỉ cần trả lời cho tôi thôi, ông bảo chỗ này phải thông qua hệ điều hành thì hệ điều hành làm gì ở đây thôi. Ù chắc k được rùi, bí rùi
 

Thống kê chủ đề

Ngày tạo
o0alvin0o,
Người trả lời cuối
tuong_tuong_1,
Trả lời
163
Lượt xem
29.742
Quay lại
Lên đầu trang