Theo mặc định chức năng làm việc được gọi với công việc được đánh thành tham số. Bên trong luồng, phần tử dữ liệu của cấu trúc có thể dễ dàng thu được. Cũng là một Gnurou, để truy cập nhiều dữ liệu hơn, cấu trúc công việc có thể được đặt bên trong một cấu trúc cụ thể thực hiện và sử dụng vùng chứa macro bên trong luồng tất cả dữ liệu có thể được truy cập.
Một mô tả đơn giản về workqueue
worqueue là ngắt xử lý nửa mechanishm dưới, nơi một phần của công việc được trao cho một sợi hạt nhân để thực hiện sau đó với preemtion trên một ngắt cho phép. Một sự kiện chủ đề percpu/n được tạo ra bởi hạt nhân, chủ đề cũng có thể được tạo ra bởi trình điều khiển mã.Một cấu trúc được sử dụng để xác định các chủ đề, một tham số quan trọng bên trong cấu trúc là trường name.It cũng chứa một cấu trúc CPU trong đó lần lượt chứa đầu waitqueue mà thread chờ đợi và một danh sách liên kết để thêm cấu trúc xác định công việc tức là chức năng và dữ liệu. Chuỗi công nhân nhận cấu trúc đó như tham số đầu vào. Chuỗi chạy và đợi trên waitqueue cho ai đó để đánh thức luồng. Một cấu trúc công việc được tạo ra xác định hàm. Khi workqueue là lịch biểu, cấu trúc được thêm vào đuôi của danh sách liên kết và chuỗi công nhân được đánh thức. Khi thức dậy, luồng công nhân chạy qua danh sách liên kết được xác định trong cấu trúc CPU và bắt đầu thực hiện các hàm được định nghĩa với cấu trúc công việc làm tham số. Sau khi thực hiện nó sẽ loại bỏ mục nhập từ danh sách liên kết.
Một blog xuất sắc giải thích tất cả các khái niệm hạt nhân Linux cơ bản với các ví dụ: http://tuxthink.blogspot.co.il/2011/09 /workqueues-1-introduction.html http://tuxthink.blogspot.co.il/2011/09/workqueue-2-declarework.html http://tuxthink.blogspot.co.il/2011/09/workqueue -3-using-runtime-creation.html – 0x90