View profile

#29 - Facebook và Minds

Revue
 
 

Grokking Newsletter

July 7 · Issue #29 · View online
Tuyển tập những bài viết hay cùng sự kiện bổ ích dành cho kĩ sư phần mềm tại Việt Nam. Đóng góp nội dung hay tại: https://goo.gl/JMeHdB

Facebook và Minds
Những bài viết hay
Nhận diện tên riêng (NER) với Bidirectional Long Short-Term Memory và Conditional Random Field
DB Transaction
Sách hay nên đọc
Working Effectively with Legacy Code
Sự kiện nổi bật
KMS Hackathon 2018
Tin tức từ công ty
Các công ty có nhu cầu chia sẻ tin tức tuyển dụng/event vui lòng tham khảo văn bản hướng dẫn để biết thêm chi tiết: http://r.grokking.org/newsletter-jobposting
Software Engineer at Wizeline
Có thể bạn chưa biết
Bài toán bữa ăn tối của các Triết gia (dining philosophers) là một bài toán được nêu lên bởi E. W. Dijkstra - một người tiên phong trong lĩnh vực concurrency - giúp làm sáng tỏ các khái niệm về deadlock và starvation freedom.
Nội dung của bài toán như sau: Tưởng tượng rằng có 5 nhà triết gia, những người chỉ dành thời gian của họ để suy nghĩ và ăn uống. Họ ngồi xung quanh một chiếc bàn tròn với 5 cái ghế. Trước mặt mỗi triết gia đặt một đĩa spaghetti. Có 5 chiếc nĩa đặt xen kẽ giữa các bát mỳ. Các nhà triết gia phải luân phiên suy nghĩ và ăn uống. Tuy nhiên một nhà triết gia chỉ có thể ăn mì khi họ có cả dĩa trái và phải. Mỗi chiếc nĩa chỉ có thể được sử dụng bởi một triết gia, các triết gia không thể sử dụng nĩa khi nó đang được giữ bởi một triết gia khác. Sau khi một nhà triết gia kết thúc ăn, ông sẽ đặt cả hai nĩa xuống hai bên để người khác sử dụng. Một nhà triết gia có thể lấy cái nĩa ở bên phải họ hoặc bên trái khi chúng có sẵn nhưng không thể bắt đầu ăn trước khi lấy cả hai nĩa.
Giả định rằng, việc ăn uống của các triết gia không bị giới hạn bởi số lượng spaghetti hoặc không gian dạ dày.
Như vậy bài toán đặt ra là làm thế nào để thiết kế một “discipline of behavior”, một thuật toán đồng bộ hoá sao cho không có triết gia nào bị chết đói. Tức là, mỗi người có thể luân phiên liên tục giữa việc ăn uống và suy nghĩ, đồng thời không một triết gia nào có thể biết trước khi nào người khác có thể muốn ăn hoặc suy nghĩ.
Bài toán này là một bài toán đồng bộ hóa kinh điển. Bài toán làm nổi bật lên việc cấp phát các tài nguyên giữa các tiến trình để tránh việc khóa chết (deadlock) và đói tài nguyên (resource starvation).
Mỗi tuần một câu đố
Cảm ơn Holistics Software đã cung cấp câu đố tuần này. Các team nào muốn gửi câu đố vui lòng gửi về [email protected]
[Database] Trong các CSDL SQL phổ biến (như MySQL, PostgreSQL, SQL Server), 2 câu lệnh sau khác nhau như thế nào? (chọn tất cả câu đúng)
TRUNCATE table_name;
DELETE FROM table_name;
A. DELETE FROM chạy càng chậm khi bảng càng có nhiều dòng. O(n).
B. TRUNCATE chạy càng chậm khi bảng càng có nhiều dòng. O(n).
C. Thông thường TRUNCATE có thể undo được, còn DELETE FROM thì không
D. Thông thường DELETE FROM có thể undo được, còn TRUNCATE thì không
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here
If you were forwarded this newsletter and you like it, you can subscribe here
Powered by Revue
Happy Tower, 75 Huynh Tinh Cua, District 3, Ho Chi Minh city, Vietnam