Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124405
  • 博文数量: 39
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-15 22:27
文章分类
文章存档

2018年(2)

2017年(37)

我的朋友

分类: LINUX

2017-10-22 09:16:03

有人说,不必非要使用线程,多个进程也能做到这点,的确如此,Unix/Linux原来的设计是没有线程的,类Unix系统包括linux从设计上更倾向于使用进程,反倒是windows因为创建进程的开销巨大,而更加热爱线程。

那么线程是不是一种设计上的冗余呢?其实不是这样的。

进程之间,彼此的地址空间是独立的,但线程会共享内存地址空间。同一个进程的多个线程共享一份全局内存区域,包括初始化数据段、为初始化数据段和动态分配的堆内存段。

这种共享给线程带来了很多的优势:

(1)创建线程的花费时间要少于创建进程花费的时间。

(2)终止线程花费的时间要少于终止进程花费的时间。

(3)线程之间上下文切换的开销,要少于进程之间的上下文切换。

(4)线程之间的数据共享比进程之间的数据共享要简单。

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