intTypePromotion=1

Bài giảng Chương 4: Luồng

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PDF | Số trang:32

0
31
lượt xem
1
download

Bài giảng Chương 4: Luồng

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mời các bạn tham khảo Bài giảng Chương 4: Luồng sau đây để bổ sung thêm kiến thức về cách tạo luồng, truyền dữ liệu cho luồng, giá trị trả về của luồng, Thread ID, thuộc tính của luồng, Thread Cancelation và một số nội dung khác.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 4: Luồng

Chương 4. Luồng<br /> Phạm Quang Dũng<br /> http://fita.hua.edu.vn/pqdung<br /> <br /> 4.1. Tạo luồng<br /> <br /> <br /> Mỗi luồng trong 1 tiến trình được xác định bởi 1 thread ID.<br /> <br /> <br /> <br /> Trong C/C++, để dùng thread ID, sử dụng kiểu pthread_t<br /> <br /> <br /> <br /> Chương trình có thể truyền tham số cho luồng mới và lấy dữ<br /> liệu từ luồng qua giá trị trả về.<br /> <br /> <br /> <br /> Sử dụng hàm pthread_create<br /> <br /> 2<br /> <br /> Các tham số của hàm pthread_create<br /> 1. Một con trỏ tới biến kiểu pthread_t chứa ID của luồng mới.<br /> 2. Một con trỏ tới đối tượng thread attribute. Đối tượng này điều<br /> khiển chi tiết việc tiến trình tương tác với phần còn lại của<br /> chương trình. Nếu truyền thread attribute là NULL, luồng mới sẽ<br /> có các thuộc tính mặc định.<br /> 3. Một con trỏ tới hàm thread, là hàm bình thường có kiểu:<br /> void* (*) (void*)<br /> 4. Một giá trị thread argument có kiểu void*. Bạn truyền bất kể cái<br /> gì cũng đơn giản là tham số cho hàm thread khi luồng bắt đầu<br /> thực hiện.<br /> <br /> 3<br /> <br /> <br /> <br /> Lời gọi pthread_create trở về ngay lập tức,<br /> <br /> <br /> <br /> luồng ban đầu thực hiện tiếp các lệnh sau lời gọi<br /> <br /> <br /> <br /> trong khi đó, luồng mới bắt đầu thực hiện hàm<br /> thread.<br /> <br /> <br /> <br />  Linux lập lịch cả 2 luồng theo cách không đồng bộ<br /> <br /> <br /> <br /> Chương trình của bạn phải không phụ thuộc vào thứ<br /> tự thực hiện của các luồng.<br /> <br /> 4<br /> <br /> Ví dụ<br /> <br /> <br /> Listing 4.1 (thread-create.c): tạo 1 luồng in các ký tự<br /> ‘x’; sau khi gọi pthread_create, luồng chính in các<br /> ký tự ‘o’.<br /> <br /> <br /> <br /> kết quả chạy chương trình?<br /> <br /> <br /> <br /> Lý do: Linux luân phiên lập lịch 2 luồng<br /> <br /> 5<br /> <br />
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2