对linux的进行和线程的一点认识
2016-11-22 12:05
190 查看
1.总的区别:
进程是担当和分配系统资源的基本单位,线程是任务执行的,比进程更小的基本单位。
线程可以理解为轻量级的进程,也意味着,线程与进程有一些相似的运行结构,比如,都有属于自己的栈空间,属于自己的变量。同时也意味着线程的运行有比进程更小的开销。
进程有独立的地址空间,线程没有独立的地址空间,它和与它处于同一进程的线程共享地址空间。
2.由区别产生的一些问题
线程的优点:
a,生成一个线程开销小,不需要要像进程那样有代码段,数据段,堆栈段,环境变量等,那么多的资源的维护开销。同时线程的切换上,也比进程要高效的多。所以在多任务的高并发高频通信场景上,多进程表现出比较大的优势。
b,因为公共地址空间,线程间通信上不像进程间通信那样麻烦,而且效率要高的多。
c,通过多线程的实现多任务,能优化代码结构,便于程序理解。
线程的缺点:
a,多线程程序健壮性低于多进程程序,因为,多线程程序中,只要一个线程挂掉,整个进程便被杀死。
b,多线程对资源进行操作时需要非常注意,防止多线程同时操作,这里需要加锁,对锁的使用需要非常小心,注意上锁的顺序,避免死锁的发生。
暂时想到这么多。
进程是担当和分配系统资源的基本单位,线程是任务执行的,比进程更小的基本单位。
线程可以理解为轻量级的进程,也意味着,线程与进程有一些相似的运行结构,比如,都有属于自己的栈空间,属于自己的变量。同时也意味着线程的运行有比进程更小的开销。
进程有独立的地址空间,线程没有独立的地址空间,它和与它处于同一进程的线程共享地址空间。
2.由区别产生的一些问题
线程的优点:
a,生成一个线程开销小,不需要要像进程那样有代码段,数据段,堆栈段,环境变量等,那么多的资源的维护开销。同时线程的切换上,也比进程要高效的多。所以在多任务的高并发高频通信场景上,多进程表现出比较大的优势。
b,因为公共地址空间,线程间通信上不像进程间通信那样麻烦,而且效率要高的多。
c,通过多线程的实现多任务,能优化代码结构,便于程序理解。
线程的缺点:
a,多线程程序健壮性低于多进程程序,因为,多线程程序中,只要一个线程挂掉,整个进程便被杀死。
b,多线程对资源进行操作时需要非常注意,防止多线程同时操作,这里需要加锁,对锁的使用需要非常小心,注意上锁的顺序,避免死锁的发生。
暂时想到这么多。
相关文章推荐
- Linux中configure命令的一点认识
- 线程同步(信号量,互斥,条件变量) 分类: linux应用程序 2008-04-08 09:43 2587人阅读 评论(1) 收藏 举报 进行多线程编程,最头疼的就是那些共享的数据。因为你无法知道哪个线程会在哪个时候对它进行操作,你也无法
- 解决Linux下多个进程或线程同时对一个文件进行写操作问题
- Linux下多个进程或线程同时对一个文件进行写操作和access函数
- Linux下JAVA线程占用CPU高一点分享
- 对DB操作的一点认识------所有数据计算在SQL中进行
- 关于对Linux下MCE(Machine Check Exception)的一点认识
- linux下使用ramdisk的一点认识
- LInux中利用线程实现多个客户端和服务器端进行通信
- 一天一点学习Linux之认识文件系统
- 对线程的一点认识
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作
- Linux下多个进程或线程同时对一个文件进行写操作
- 在Linux中找出占用大量CPU的Java代码(将Java线程与Linux PID进行关联)
- linux下使用c进行线程操作
- linux进程通信:使用posix消息队列mq进行线程或进程间的通信
- Linux下JAVA线程占用CPU高一点分享
- 信号量进行同步(linux POSIX的实时扩展,用于线程)!
- Linux下如何对Java线程进行分析?