大学电子商务网站建设方案,手机微网站怎么设计方案,网站推广是做什,国家重点建设裤网站进程与线程区别
1.进程是资源分配的最小单位#xff0c;线程是程序执行的最小单位#xff08;资源调度的最小单位#xff09;
2.进程有自己的独立地址空间#xff0c;每启动一个进程#xff0c;系统就会为它分配地址空间#xff0c;建立数据表来维护代码段、堆栈段和数…进程与线程区别
1.进程是资源分配的最小单位线程是程序执行的最小单位资源调度的最小单位
2.进程有自己的独立地址空间每启动一个进程系统就会为它分配地址空间建立数据表来维护代码段、堆栈段和数据段。而线程是共享进程中的数据的使用相同的地址空间因此CPU切换一个线程的花费远比进程小很多创建也是。
3.线程之间的通信更方便同一进程下的线程共享全局变量、静态变量等数据而进程之间的通信需要以通信的方式进行。
4.但是多进程程序健壮多线程程序只要有一个线程死掉整个进程也死掉了而一个进程死掉并不会对另一个进程造成影响因为进程有自己独立的地址空间。
死锁产生条件和解决办法
产生条件
1.互斥条件一个资源每次只能被一个进程使用
2.请求与保持条件一个进程因请求资源而阻塞时对已获得的资源保持不放
3.不剥夺进程已获得的资源在未使用完之前不能强行剥夺
4.循环等待条件
解决办法
1.如果不同程序会并发存取多个表尽量约定以相同顺序访问表
2.在同一个事务中尽可能左到一次锁定所需要的所有资源减少死锁产生概率
3.如果业务处理不好可以用分布式事务锁或乐观锁
物理地址和逻辑地址
逻辑地址
逻辑地址是CPU分配给每个进程的地址逻辑虚拟地址和它的实际所处位置是不一样的这是共享内存时所必需的。逻辑地址通过MMU内存管理单元转换为物理地址。
物理地址
内存空间所在的实际内存地址由CPU生成。
多进程、多线程区别
数据共享、同步
多进程共享复杂同步简单多线程共享简单同步复杂
内存、CPU
多进程占用内存多切换复杂CPU利用率低多线程相反
创建销毁、切换
多进程创建销毁、切换复杂速度慢多线程相反
编程调试
多进程编程简单调试简单多线程相反
可靠性
进程间相互不影响一个线程挂掉整个线程挂掉
分布式
多进程适应于多核、多机分布多线程适应于多核分布
进程间通信方式
管道
数据单向传输。
1.匿名管道。用完销毁。通信范围是存在父子关系的进程
2.命名管道。FIFO。不相关的进程间也能通信
缺点效率低不适合频繁交换数据
消息队列
像发邮件一样你发一封我回一封可以频繁沟通
缺点
1.通信不及时
2.附件有大小限制
3.存在用户态和内核态之间的数据拷贝开销
共享内存
一块虚拟地址空间映射到相同的物理内存中。这个进程写入的东西另一个进程马上就能看到不需要拷贝传输提高了通信速度
信号量
实现进程间的互斥与同步。
两种操作
1.P信号量-1信号量0表示资源被占用需等待0可以执行
2.V信号量1信号量0表示有阻塞中的进程唤醒运行0没有阻塞中的进程。
两个操作必须成对出现。
信号量初始为1代表互斥初始为0代表同步比如说保证进程A在进程B之前执行
信号
适用于异常情况下的工作模式。
Linux提供了几十种信号通过kill -l可以查看所有信号
信号是进程间通信机制中唯一的异步通信机制发送信号后有如下操作
1.执行默认操作。
2.捕捉信号。为信号定义一个信号处理函数
3.忽略信号。不希望处理某些信号就忽略
Socket
跨网络与不同主机上的进程通信。
三种常见通信方式
1.基于TCP协议的通信方式
2.基于UDP协议的通信方式
3.本地进程间通信
线程之间共享哪些内容
堆全局变量静态变量文件等公用资源。
独享栈寄存器