Mục lục:
Định nghĩa - Thunk có nghĩa là gì?
Một thunk, trong một bối cảnh điện toán chung, là một đoạn mã được tạo ra ở cấp độ thấp, thực hiện các chi tiết của một hệ thống phần mềm. Đây là một trong những điều sau đây:
- Một đoạn mã thực hiện tính toán bị trì hoãn
- Một tính năng của việc thực hiện bảng chức năng ảo
- Ánh xạ dữ liệu máy từ một dạng cụ thể của hệ thống sang dạng khác cho các vấn đề tương thích
Techopedia giải thích Thunk
Các khái niệm về thunk xuất hiện vào đầu năm 1961. Đây là một tính toán trả về giá trị của đối số khi được thực thi. Một cuộc gọi theo nhu cầu thay thế một thunk bằng giá trị trả về của nó sau lần thực hiện đầu tiên. Các ngôn ngữ có ràng buộc muộn có tra cứu trong thời gian chạy, dựa trên các tính toán được thực hiện bởi thunk.
Các hàm Nullary (các hàm không lấy đối số) trong lập trình hàm được gọi là thunk. Thunks mô phỏng đánh giá lười biếng và trì hoãn tính toán đối số chức năng. Các chức năng này tiếp tục buộc thunks để có được giá trị thực tế. Thunk cũng có thể xuất hiện một cách tự nhiên trong việc thực hiện các chức năng không đổi trong lập trình bậc cao.
Trình biên dịch các ngôn ngữ hướng đối tượng như C ++ tạo ra các hàm được gọi là thunks. Chúng tối ưu hóa các cuộc gọi chức năng ảo với sự có mặt của nhiều kế thừa ảo hoặc nhiều.
Một số trường hợp mã có thể định vị lại sử dụng thunks cục bộ để gọi các hàm thư viện. Cuộc gọi thư viện động trong mã nhảy tới thunks trong bảng nhảy, được thay thế thêm bằng các hàm tải thư viện áp dụng hoặc di chuyển đến một điểm thích hợp trong thư viện đã được tải. Vì vậy, một thunk trong khu vực này tính toán hoặc trả về các giá trị được tính toán và lưu trữ trước đó. Thunks được sử dụng trong các hệ thống bộ nhớ ảo dựa trên phần mềm để thực hiện ánh xạ từ địa chỉ ảo sang địa chỉ vật lý. Tạo một máy DOS ảo 16 bit bên trong HĐH 32 bit được gọi là thunking và đảm bảo khả năng tương thích ngược với các ứng dụng sử dụng các cuộc gọi hệ thống cũ.
Quần thun phẳng sử dụng thunks dịch các cuộc gọi từ mã 32 bit sang mã 16 bit. Một mã trung gian dịch địa chỉ bộ nhớ giữa các nền tảng. Microsoft có một lớp chính của nó được gọi là Win32s, cho phép ứng dụng Windows 32 bit chạy trên Windows 16 bit. Phiên bản Windows 64 bit cũng cung cấp lớp nền, WoW64, cho phép sử dụng các ứng dụng Windows 32 bit.
