进程和线程的区别和关系,网上和书上说的都很专业,不是很好理解。
进程:一个正在运行的程序就叫一个进程 比如说手机打开的一个应用就是一个进程
多进程:多个程序同时运行 叫多进程 比如手机同时打开这多个程序 听着歌上着QQ
线程:一个程序 或者说 一个进程 都会有一个 或多个线程 比如说听歌 你进应用之后一直在点击听歌 更换模式这些按钮 处理你点击按钮产生的作用的就是线程 你能看见的都是操作都是主线程在完成 你看不见的比如你虽然在听歌 但是歌曲也正在缓存这就是子线程在工作 这也就是多线程 子线程是帮主线程分担的
总的来说 主线程负责用户能看见的任务 例如 添加控件 刷新界面 除了主线程以外,都叫子线程, 线程之间是独立的 并没有任何联系 子线程一般 负责 用户不直接看见的任务 例如 加载图片的过程 下载视频等
举个通俗的例子 体育老师命令你在操场不停的跑圈 那么你在操场跑圈 你就是主线程 但是当你跑圈的时候你想吃包子 那么你就要找人你帮你买 那么就相当于你开启了一个子线程 让他去帮你做事 你还是在跑圈 他去买包子 你们互相独立 互不影响
还有一点就是 主线程上的事必须是一件干完再干另外一件 这样当一件事没有完成的时候手机就会卡着不动 所以要让子线程去干 自己该怎么的还怎么的 比如说下载让主线程干的话 那么下载不完他就卡在那 点什么都不管用 只能等他下载完 所以为了不影响就要子线程去干
详细的多线程操作可以看下面这篇链接的博客
http://blog.csdn.net/iosfengguibin/article/details/48833189
进程是分配资源的最小单位,线程是CPU调度的最小单位,一个进程可以有多个线程,主线程先于子线程运行,之后并发运行。多线程的并发度,效率高于多进程,因为线程开销小,处理器切换快。
如果走路是进程,那迈左腿和迈右腿就是该进程的两个线程