博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程 / 进程 简介
阅读量:6213 次
发布时间:2019-06-21

本文共 700 字,大约阅读时间需要 2 分钟。

hot3.png

进程的概念:应用以编码形式默认保存在硬盘上  打开之后  将应用加载到内存中之后  在内存中的这个程序 就是一个进程  对于ios来说 一个应用只能有一个进程  在pc端 一个应用可以有多个进程

 线程是相对于进程而言的(相当于真正是干活的工人)  一个进程(相当于包工头) 创建多个线程后  省资源   真正干活的是线程(工人)  而不是进程(包工头)

进程之间的数据是相互独立的  资源是不共享的   想用的话 可以进行拷贝  但是 拷贝出来的东西地址是不一样的  比较占用内存资源

线程之间数据可以共享 (相当于干活的时候  共用一套工具)  但是可能出现不安全  比如说两个线程同时能共用一串字符串的时候  线程1 在对str进行写   但是线程2要对str进行读   这时候就会出现问题  

在同步下载中 一个程序在运行中 如果遇到耗时操作(下载)时 主线程执行这段代码   就会出现假死的状态

在异步下载中 一个程序在运行中 如果遇到耗时操作(下载)时  主线程可以分出来一个子线程  让子线程执行下载的操作

    CPU在执行多线程代码的时候  由于CPU的运行效率比较高  执行完一个线程的第一行代码 马上暂停当前执行  并进行存档(每一个线程都有一个自己的寄存器)  立即去执行另外一个线程的第一行代码 执行完后 进行读档 继续执行线程一的代码  循环执行  -----也就是说我们可以把每一个单位时间(比如说1毫秒)分割出来  去执行我们需要的任务  这样在一秒中就会有一千个线程被执行,这样我们把这一千个线程分配给多个应用程序 就可以达到多任务同时进行的效果   

转载于:https://my.oschina.net/1229feilong/blog/370906

你可能感兴趣的文章
PyCharm入门教程——在编辑器中打开和重新打开文件
查看>>
分布式系统理论概述
查看>>
传统IDC部署网站(六)
查看>>
zookeeper: 分布式锁的实现
查看>>
Gearman Worker自恢复方案
查看>>
phalapi-进阶篇3(自动加载和拦截器)
查看>>
nginx配置
查看>>
[Yii Framework] spl_autoload_register 导致加载顺序冲突
查看>>
OSChina 周二乱弹 —— 糟糕 是喵动的感觉
查看>>
OSChina 周三乱弹 —— 野生公交车正在河边喝水
查看>>
【NGINX】虚拟主机配置示例
查看>>
OSX BASH 漏洞修复指南
查看>>
Android获取程序大小及程序缓存大小
查看>>
web.xml常用标签命令详解
查看>>
#location解读
查看>>
golang -- channel使用
查看>>
git 日常命令
查看>>
java5的线程锁技术
查看>>
内存溢出和内存泄漏的区别,产生原因以及解决方案
查看>>
Android多Dex热修复及CLASS_ISPREVERIFIED
查看>>