三层架构介绍及线程与进程的关系

1.初识三层架构(其实就是吧同种类的全部放到一起)

1).用户交互

2).逻辑处理

3).数据存储

2.多线程与多进程

进程:是操作系统自己派生出来的。

线程:是由进程派生出来的。

1)一个程序至少有一个进程,一个进程至少有一个线程.

2) 线程的划分尺度小于进程,使得多线程程序的并发性高。

3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

3.线程与进程的优缺点:

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

4.GIL是什么:

  每一个interpreter进程,只能同时仅有一个线程来执行, 获得相关的锁, 存取相关的资源.在Python中就是GIL限制的结果。GIL无疑就是一把全局排他锁。毫无疑问全局锁的存在会对多线程的效率有不小影响。甚至就几乎等于Python是个单线程的程序。(但是在当下的Python中,有优化的方法,来实现高并发的效果,这个稍等下次更新)。

时间: 2024-11-06 09:04:38

三层架构介绍及线程与进程的关系的相关文章

三层架构介绍

对比以上两图,我们可以看出: 1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里. 2)DAL 好比是屠宰场 ,把猪从猪圈取出来进行(处理)屠杀,按要求取出相应的部位(字段),或者进行归类整理(统计),形成整箱的猪肉(数据集),传送给食品加工厂( BLL ).本来这里都是同一伙人既管抓猪,又管杀猪的,后来觉得效率太低了,就让一部分人出来专管抓猪了( DBUtility ),根据要求来抓取指定的猪. 3)BLL 好比食品加工厂 ,将猪肉深加工成各种可以食用的食品(业务处理). 4

从零开始编写自己的C#框架(5)——三层架构介绍

原文:从零开始编写自己的C#框架(5)--三层架构介绍 三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发. 在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪-<.NET深入体验与实战精要>>,这是以前看到的关于三层架构介绍,觉得挺经典的,大家有时间的话认真看看) 对比以上两图,我们可以看出: 1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里. 2)DAL 好比是屠宰场 ,把猪从猪圈取出

ASP.NET三层架构介绍及数据库配置方法

一.三层架构(高内聚,低耦合) 1.Model层:中的实体类是与数据库表严格对应的,并定义的public成员属性. 2.DAL数据访问层:实现对数据库中数据的“增,删,改,查”操作. 4.Web表现层:Web页面功能3.BLL业务逻辑层:针对具体问题的操作,即对DAL层的操作 需要注意的是: DAL层只可以访问或调用Model层: BLL层只可以访问或调用Model和DAL层: Web层只可以访问或调用Model和BLL层. 二.数据库配置方法 改web.config中的连接字符串: (1) D

线程和进程的关系

在多个CPU的主机上,线程是可以同时执行的. 多线程对于多进程的优点: 1.在多进程的情况下,每个进程都有自己的地址空间.而在多线程情况下,同一进程内的线程共享进程的地址空间, 因此,创建一个新的进程要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间要少得多. 2.在系统调度方面,由于进程拥有独立的地址空间,而线程共享地址空间.线程的切换速度要远远快过进程间的切换速度. 3.在通信机制方面,进程间的数据空间相互独立,彼此通信要以专门的方式进行通信,通信时必须要经过操作系统.同一进程内的线

delphi的多线程实现和线程与进程的关系说明

做了个多线程的测试Demo unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Unit2; type TForm1 = class(TForm) lbl1: TLabel; btn1: TButton; btn2: TButton; btn3: TButton; procedure btn1Click(Se

线程与进程的关系

概述 进程是资源分配的基本单位,进程由线程组成. 线程是系统执行调度的基本单位,线程隶属于进程. 为何引入线程 1.进程在同一时间只能干一件事,比如我们在上课的时候,往往要耳朵听课,手记笔记,脑子思考,如果套用进程的机制,那么我们听课的时候也不能记录笔记,更不能思考. 2.当进程某个操作阻塞时,整个进程就会挂起,也就是说当老师讲课时需要思考的时候,我们也还只能听课,不能思考也不能记录笔记 线程与进程的区别 1.进程是资源分配的基本单位,线程是系统执行调度的基本单位 2.每个进程都有独立的内存地址

Python菜鸟之路:Python基础-线程、进程、协程

上节内容,简单的介绍了线程和进程,并且介绍了Python中的GIL机制.本节详细介绍线程.进程以及协程的概念及实现. 线程 基本使用 方法1: 创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入 import threading import time def worker(): time.sleep(2) print("test") for i in range(5): t = threading.Thread(target=

线程与进程极其区别

1.进程和线程 1.1 概述: 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行. 相对进程而言,线程是一个更加接近于执

Python_oldboy_自动化运维之路_线程,进程,协程(十一)

本节内容: 线程 进程 协程 IO多路复用 自定义异步非阻塞的框架 线程和进程的介绍: 举个例子,拿甄嬛传举列线程和进程的关系: 总结:1.工作最小单元是线程,进程说白了就是提供资源的 2.一个应用程序至少有一个进程,一个进程里至少有一个线程 3.应用场景:io密集型适合用多线程,计算密集型(cpu)适合用多进程 4.GIL:全局解释器锁,作用:保证同一个进程中只能有一个线程同时被调用 5.python的一个诟病:前提是被cpu调度,因为有GIL,一个应用只有一个进程,纵容有多个线程,也体现不出