Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64130
  • 博文数量: 29
  • 博客积分: 1250
  • 博客等级: 中尉
  • 技术积分: 292
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-30 13:04
文章分类

全部博文(29)

文章存档

2009年(24)

2008年(5)

我的朋友

分类: LINUX

2008-11-06 10:05:21

文件: 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 < 0) {
        perror("accept");
        sleep(1);
        continue;
    }
附上我做的所有练习.
 
如有错误,请帮忙指正,多谢!
阅读(472) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~