面向linux方向的面试总结

进程和线程的区别
  1. 线程是属于进程的,所以说线程是一个轻量级的进程
  2. 进程是资源分配的最小单位,线程是CPU调度的最小单位
  3. 进程拥有自己独立的空间,而线程则是共享他的储存空间(堆存储,数据段和代码段),但是拥有自己独立的栈段
  4. 系统开销,进程的系统开销较大,在创建进程的时候进程的时候,系统都要为他分配和回收资源,而且切换的时候需要CPU的帮助,而线程只是需要一些寄存器的帮助,并不牵扯存储器
  5. 通信:进程的通信需要IPC,同步互斥等方式来实现通信,而线程由于共享内存空间,他们的同步和通信变得容易
  6. 进程之间不会相互影响,而线程之间一个挂掉都会导致全部挂掉
  7. 进程适合多核,多机分布,线程适合多核
并发和并行

并发: 指的是宏观上两个同时运行,微观上交叉运行,可以提升效率,但不能提高性能
并行:严格物理意义上的并行通信,相互不影响

线程间的同步方式

信号量:sem_wait sem_post
互斥量:pthread_muetx_lock pthread_mutex_unlock
条件变量: pthead_cond_signal

线程通信的方法
  1. 临界区
  2. 互斥量:只能有一个人来读取内容
  3. 信号量:可以让多个线程同时访一个资源(线程池)
  4. 事件:通知的方式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值