线程
2016-04-22 13:39
344 查看
1 线程拥有完全一样的地址空间,由于各个线程都可以访问进程地址空间的每一个内存地址,所以一个线程可以读写甚至完全清除另一个线程的堆栈,线程之间是没有保护的。
一个进程中所有线程共享的内容:地址空间、全局变量、打开文件、子进程、即将发生的警告、信号与信号处理程序、账户信息。
2 每个线程中的内容:程序计数器(记录接着要执行哪一条指令)、寄存器(保存线程当前工作变量)、堆栈(记录执行历史及相应过程的局部变量,每一帧保存一个已经调用但是未返回的过程)、状态。
3 线程也称为轻量级进程。
4 进程是资源分配的单位,线程是调度的最小单位。
5 线程共享一组资源,以便共同完成某个工作。
6 线程可以处于进程的四种状态:运行、阻塞、就绪、终止。线程之间的状态转换和进程一样。
7 每个线程会调用不同的过程,具有不同的执行历史,所以需要各自的堆栈。
8 线程通过库过程thread_create创建新的线程,但所有线程都是平等的;线程完成工作后,调用thread_exit退出,线程消失后不可调度;线程调用thread_wait来等待另一个线程退出,调用线程将阻塞直到所等待的线程退出;线程调用thread_yield自动放弃cpu从而让另一个线程运行。
9 多线程的原因:
多线程共享同一地址空间和所有可用数据,这是多进程不能胜任的;
线程附带资源并不多,线程比进程更容易创建和撤销,许多系统中,线程的创建比进程快100倍,这也是使用多线程的原因;
若多线程是cpu密集型,则无法获得性能的提升,但是如果存在大量的IO处理和计算,多线程允许这些活动重叠进行,提升性能;
多核cpu中多线程可以实现真正的并行。
10 线程如何处理到来的消息:
传统方法是将线程阻塞在一个receive系统调用上,等待消息到来,消息到来时该系统调用接收消息并处理;
另一种方法一个消息到达就导致系统创建一个处理该消息的线程,成为弹出式线程,好处是这种线程无历史,无寄存器、堆栈等,可以快速创建,消息到达和处理开始之间的时间非常短。
一个进程中所有线程共享的内容:地址空间、全局变量、打开文件、子进程、即将发生的警告、信号与信号处理程序、账户信息。
2 每个线程中的内容:程序计数器(记录接着要执行哪一条指令)、寄存器(保存线程当前工作变量)、堆栈(记录执行历史及相应过程的局部变量,每一帧保存一个已经调用但是未返回的过程)、状态。
3 线程也称为轻量级进程。
4 进程是资源分配的单位,线程是调度的最小单位。
5 线程共享一组资源,以便共同完成某个工作。
6 线程可以处于进程的四种状态:运行、阻塞、就绪、终止。线程之间的状态转换和进程一样。
7 每个线程会调用不同的过程,具有不同的执行历史,所以需要各自的堆栈。
8 线程通过库过程thread_create创建新的线程,但所有线程都是平等的;线程完成工作后,调用thread_exit退出,线程消失后不可调度;线程调用thread_wait来等待另一个线程退出,调用线程将阻塞直到所等待的线程退出;线程调用thread_yield自动放弃cpu从而让另一个线程运行。
9 多线程的原因:
多线程共享同一地址空间和所有可用数据,这是多进程不能胜任的;
线程附带资源并不多,线程比进程更容易创建和撤销,许多系统中,线程的创建比进程快100倍,这也是使用多线程的原因;
若多线程是cpu密集型,则无法获得性能的提升,但是如果存在大量的IO处理和计算,多线程允许这些活动重叠进行,提升性能;
多核cpu中多线程可以实现真正的并行。
10 线程如何处理到来的消息:
传统方法是将线程阻塞在一个receive系统调用上,等待消息到来,消息到来时该系统调用接收消息并处理;
另一种方法一个消息到达就导致系统创建一个处理该消息的线程,成为弹出式线程,好处是这种线程无历史,无寄存器、堆栈等,可以快速创建,消息到达和处理开始之间的时间非常短。
相关文章推荐
- 作业调度
- ThinkPHP集成阿里支付
- MySQL 批量插入 Update时Replace
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- document.body / document.ducumentElement /等获取高度和宽度的区别 ----转载
- Python yield 使用浅析
- 【学习C++】C++ Primer Plus (第六版)第八章编程练习1-7
- .net如何发送格式化的文本内容
- jcenter 的一点总结
- js跨域访问,No ‘Access-Control-Allow-Origin‘ header is present on
- leetcode——337—— House Robber III
- Spring Junit4 测试Web应用程序
- hdu 5667
- Ubuntu下rm;rmdir;rm -rf;学习
- 一个貌似被恶意攻击的事情。。。。。。
- iOS开发-取消导航栏渲染问题(适应各种渲染问题)
- My97 DatePicker怎么禁止右键 触发的链接
- The type org.apache.http.HttpResponse cannot be resolved. It is indirectly referenced from required
- JAVA面试题二--转载自用
- JAVA----Object类