- 论坛徽章:
- 0
|
![]()
文件:
embedded-linux-app.tar.gz
大小:
119KB
下载:
下载
前两个礼拜学习了《嵌入式Linux应用程序开发详解》,虽然书中错误较多,不过觉得是一本好书。
1. 在使用线程函数时,不能随意使用exit()来退出线程,要用pthread_exit()代替。exit()表示退出当前进程;进程中可能还存在其他线程。
2. 编译带线程的程序时,需要加 -lpthread 参数编译。
3. 内核调度管理的是进程。一个进程可以包含多个线程。
内核态中的线程称为内核线程,用户态中的线程称为用户线程。用户线程由内核提供库来创
建。通常一个用户线程会对应一个内核线程,从而内核可以进行调度。
内核线程是由个轻量级的进程构成,通常一个进程中只有一个线程。
在使用pthread_create()创建用户线程时,可以在一个进程中创建多个线程。但每个线程会
对应一个内核线程。如果固定的对以某一个内核线程,这个属性称为绑定,就可以保证在需
要的时候总有内核线程与之对应,称为“一对一”。否则,对应的内核线程由系统控制分配,
不固定,称为“多对一”。
4. 使用pthread_create()创建线程有先后顺序,先创建的先运行
5. socket使用时,必须对socklen_t sin_size 初始化(>=0),否则可能会出错。如:
int clientfd;
socklen_t sin_size = 0; // or sizeof(socklen_t)
struct sockaddr_in client_sockaddr;
clientfd = accept(sockfd, (struct sockaddr*)&client_sockaddr, &sin_size);
if (clientfd
附上我做的所有练习.
如有错误,请帮忙指正,多谢!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81094/showart_1362012.html |
|