Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67166
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 213
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-24 12:38
个人简介

专注的力量很大,它能把一个人的潜力发挥到极致,一旦达到那种状态你就没有了自我的概念,所有的精力集中到了一点。

文章分类
文章存档

2015年(11)

2014年(6)

我的朋友

分类: 嵌入式

2015-02-26 19:55:10

线程是进程内部的一个执行单元,一个进程可以有多个线程来构成,
举个例子:一个公司计划完成一个比较庞大的项目,通常情况下,会将人员划分为若干个小组,这就好像是一个进程可以有若干个线程一样。每个小组的分工不同,但是他们共享各个项目的资源,也接受整个项目的管理与调度。
线程的基本操作包括线程的创建,合并,终止,以及线程的属性。
线程的同步,包括互斥量,条件变量和信号量3种方式。

多线程有什么好处?
1.提高应用程序的影响速度
2.提高多CPU系统的效率

1.线程的创建
pthread_create

2.线程的合并
pthread_join

3.线程的终止
线程自身调用pthread_exit函数
其他线程调用pthread_cencel函数

4.线程的属性
    1.线程的分离状态
    pthread_attr_setdetachstate
    2.线程的优先级
    pthread_attr_getschedparam

5.线程的同步
    1.互斥量
        pthread_mutex mutex;  //定义互斥量
        pthread_mutex_init (&mutex,NULL);//互斥量初始化
        pthread_mutex_lock(&mutex);//加锁
            ...//进行的操作
        pthread_mutex_unlock(&mutex);//解锁
    2.条件变量
        pthread_cond_t cond;//定义条件变量
        pthread_cond_signal(&cond); //条件变量
        pthread_cond_wait(&cond,&mutex);//阻止线程
    3.信号量
        sem_t sem;//定义信号量
        sem_wait(&sem);//阻止当前线程
        sem_init(&sem,0,0);//初始化信号量
        sem_post(&sem);//激活当前线程
        sem_destroy(&sem);//注销信号量

常见面试题。
1.什么是线程?相比于进程,主要有哪些优点?
答:线程运行与进程空间之中,它是进程内部的一个执行单元。相比于进程,线程的优点主要表现在:系统资源小,切换快,是节俭的多任务操作方式;进程间的通信机制更加高效。
2.实现线程见同步主要有哪几种方法?
答:互斥量,条件变量,信号量。




阅读(1176) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~