并发编程----线程介绍
线程 一, 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 进程: 划分空间,加载资源,静态的 线程: 执行代码,执行能力,动态的 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位 线程是依赖于进程,一个进程可以包含多个线程,但是一定有一个主线程.线程才是CPU执行的最小单元 二, 线程与进程的区别 线程共享创建它的进程的地址空间; 进程有自己的地址空间 线程可以直接访问其进程的数据段(同进程内数据共享); 进程有自己的父进程数据段副本(数据隔离) 线程可以直接与其进程的其他线程通信;进程必须使用进程间通信与兄弟进程通信 新线程很容易创建(创建的开销很少,速度很快);新进程需要父进程的重复(需要开辟空间,复制资源,开销比开启线程多10-100倍) 线程可以对同一进程的线程进行相当大的控制; 进程只能对子进程进行控制 对主线程的更改(取消、优先级更改等)可能会影响进程的其他线程的行为; 对父进程的更改不会影响子进程. 三, 为什么要使用多线程 多线程指的是,在一个进程中开启多个线程,简单的讲: 如果多个任务共用一块地址空间,那么必须在一个进程内开启多个线程.详细的讲分为4点: 多线程共享一个进程的地址空间 线程比进程更轻量级,线程比进程更容易创建和撤销,在许多操作系统中