精华内容
下载资源
问答
  • CSS基础:CSS的上下文之层叠上下文

    万次阅读 多人点赞 2021-02-26 18:24:23
    CSS的上下文之层叠上下文 看到层叠,大家一定会联想到定位元素会是的元素之间发生“遮挡”,而z-index可以改变他们之间的遮挡优先级,但这仅仅是层叠这一概念中很小的一部分。 本文就来聊一聊css中的层叠上下文到底...

    CSS的上下文之层叠上下文

    看到层叠,大家一定会联想到定位元素会是的元素之间发生“遮挡”,而z-index可以改变他们之间的遮挡优先级,但这仅仅是层叠这一概念中很小的一部分。
    本文就来聊一聊css中的层叠上下文到底是如何给元素规定叠加顺序的。

    一、什么是层叠上下文?

    层叠上下文,英文称作”stacking context”. 我们假定用户正面向(浏览器)视窗或网页,而 HTML 元素沿着其相对于用户的一条虚构的 z 轴排开,层叠上下文就是对这些 HTML 元素的一个三维构想。众 HTML 元素基于其元素属性按照优先级顺序占据这个空间。

    我们可以把层叠上下文同样可以理解成是元素的属性。

    下列方式会形成层叠上下文(列举常见的方式):

    • position 值为 static 以外的值,且 z-index 值不为 auto;
    • flex (flexbox) 容器的子元素,且 z-index 值不为 auto;
    • grid (grid) 容器的子元素,且 z-index 值不为 auto;
    • opacity 属性值小于 1 的元素;
    • transform属性 不为none的元素;

    总结:

    在层叠上下文中,子元素同样也按照上面解释的规则进行层叠。 重要的是,其子级层叠上下文的 z-index 值只在父级中才有意义。子级层叠上下文被自动视为父级层叠上下文的一个独立单元。

    在这里插入图片描述

    二、什么是层叠水平?

    “层叠水平”,英文称作”stacking level”,决定了同一个层叠上下文中元素在z轴上的显示顺序。网页中的每个元素都是独立的个体,他们一定是会有一个类似的排名排序的情况存在。而这个排名排序、论资排辈就是我们这里所说的“层叠水平”。

    但注意,每一个层叠上下文内部的子元素都不会突破包裹它的上下文。

    下面是引自张鑫旭大大的一段解释,我觉得很通俗易懂:

    所有的元素都有层叠水平,包括层叠上下文元素,层叠上下文元素的层叠水平可以理解为官员的职级,1品2品,县长省长之类。然后,对于普通元素的层叠水平,我们的探讨仅仅局限在当前层叠上下文元素中。为什么呢?因为否则没有意义。

    翻译成术语就是:普通元素的层叠水平优先由层叠上下文决定,因此,层叠水平的比较只有在当前层叠上下文元素中才有意义。

    举例:

    大家看下面的一段代码:

    在这里插入图片描述

    现象:

    在这个例子中,每个被定位的元素都创建了独自的层叠上下文,因为他们被指定了定位属性和 z-index 值。我们把层叠上下文的层级列在下面:

    • DIV #1
    • DIV #2
    • DIV #3
      • DIV #4
      • DIV #5

    不同层的z-index他们的意义只相对于同一个层叠上下文。你会发现z-index:100的也没有覆盖z-index:1的。

    在这里插入图片描述

    结论:

    千万不要把层叠水平和CSS的z-index属性混为一谈。没错,某些情况下z-index确实可以影响层叠水平,但是,只限于定位元素以及flex盒子的孩子元素;而层叠水平所有的元素都存在。

    三、什么是层叠顺序?

    “层叠顺序”英文称作”stacking order”. 表示元素发生层叠时候有着特定的垂直显示顺序,注意,这里跟上面两个不一样,上面的层叠上下文和层叠水平是概念,而这里的层叠顺序是规则。

    在CSS2.1的年代,在CSS3还没有出现的时候(注意这里的前提),层叠顺序规则遵循下面这张图(同样是引自张大大的旧图):

    四、层叠上下文的特性

    4.1 准则

    • 谁大谁上:当具有明显的层叠水平标示的时候,如识别的z-indx值,在同一个层叠上下文领域,层叠水平值大的那一个覆盖小的那一个。通俗讲就是官大的压死官小的。
    • 后来居上:当元素的层叠水平一致、层叠顺序相同的时候,在DOM流中处于后面的元素会覆盖前面的元素。
      在CSS和HTML领域,只要元素发生了重叠,都离不开上面这两个黄金准则。因为后面会有多个实例说明,这里就到此为止。

    4.2 特性

    • 层叠上下文的层叠水平要比普通元素高;
    • 层叠上下文可以嵌套,内部层叠上下文及其所有子元素均受制于外部的层叠上下文。
    • 每个层叠上下文和兄弟元素独立,也就是当进行层叠变化或渲染的时候,只需要考虑后代元素。
    • 每个层叠上下文是自成体系的,当元素发生层叠的时候,整个元素被认为是在父层叠上下文的层叠顺序中。

    讲到这里我们对层叠上下文应该有了一定理解,我们共勉~

    写在最后

    参考:

    CSS基础系列》第四篇文章

    如果对你有所帮助不妨给本项目的github 点个 star,这是对我最大的鼓励!

    关于我

    • 花名:余光
    • WX:j565017805
    • 沉迷 JS,水平有限,虚心学习中

    其他沉淀

    展开全文
  • 文章目录基本概念上下文原子为什么会有上下文这种概念进程上下文中断上下文进程上下文 VS 中断上下文原子上下文 基本概念 上下文   上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行...

    基本概念

    上下文

      上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行时的环境;具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。

    原子

      原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" ;

    为什么会有上下文这种概念

      内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。

      其中处理器总处于以下状态中的一种:
      内核态,运行于进程上下文,内核代表进程运行于内核空间;
      内核态,运行于中断上下文,内核代表硬件运行于内核空间;
      用户态,运行于用户空间。

      系统的两种不同运行状态,才有了上下文的概念。用户空间的应用程序,如果想请求系统服务,比如操作某个物理设备,映射设备的地址到用户空间,必须通过系统调用来实现。(系统调用是操作系统提供给用户空间的接口函数)。

      通过系统调用,用户空间的应用程序就会进入内核空间,由内核代表该进程运行于内核空间,这就涉及到上下文的切换,用户空间和内核空间具有不同的 地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等,以便系统调用结束后回到用户 空间继续执行

    进程上下文

      所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它 需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行

      一个进程的上下文可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文
      用户级上下文: 正文、数据、用户堆栈以及共享存储区;
      寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);
      系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。

      当发生进程调度时,进行进程切换就是上下文切换(context switch)。操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的是模式切换(mode switch)。模式切换与进程切换比较起来,容易很多,而且节省时间,因为模式切换最主要的任务只是切换进程寄存器上下文的切换。

      进程上下文主要是异常处理程序和内核线程内核之所以进入进程上下文是因为进程自身的一些工作需要在内核中做。例如,系统调用是为当前进程服务的,异常通常是处理进程导致的错误状态等。所以在进程上下文中引用current是有意义的。

    中断上下文

      硬件通过触发信号,向CPU发送中断信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核, 内核通过这些参数进行中断处理

      所以,“中断上下文”就可以理解为硬件传递过来的这些参数和内核需要保存的一些环境,主要是被中断的进程的环境

      内核进入中断上下文是因为中断信号而导致的 中断处理或软中断。而中断信号的发生是随机的,中断处理程序及软中断并不能事先预测发生中断时当前运行的是哪个进程,所以在中断上下文中引用current是可以的,但没有意义。

      事实上,对于A进程希望等待的中断信号,可能在B进程执行期间发生。例如,A进程启动写磁盘操作,A进程睡眠后B进程在运行,当磁盘写完后磁盘中断信号打断的是B进程,在中断处理时会唤醒A进程。

    进程上下文 VS 中断上下文

      内核可以处于两种上下文:进程上下文和中断上下文。

      在系统调用之后,用户应用程序进入内核空间,此后内核空间针对用户空间相应进程的代表就运行于进程上下文。
      异步发生的中断会引发中断处理程序被调用,中断处理程序就运行于中断上下文。

      中断上下文和进程上下文不可能同时发生。
      运行于进程上下文的内核代码是可抢占的,但中断上下文则会一直运行至结束,不会被抢占。因此,内核会限制中断上下文的工作,不允许其执行如下操作

      a – 进入睡眠状态或主动放弃CPU
      由于中断上下文不属于任何进程,它与current没有任何关系(尽管此时current指向被中断的进程),所以中断上下文一旦睡眠或者放弃CPU,将无法被唤醒。所以也叫原子上下文(atomic context)。

      b – 占用互斥体
      为了保护中断句柄临界区资源,不能使用mutexes。如果获得不到信号量,代码就会睡眠,会产生和上面相同的情况,如果必须使用锁,则使用spinlock。

      c – 执行耗时的任务
      中断处理应该尽可能快,因为内核要响应大量服务和请求,中断上下文占用CPU时间太长会严重影响系统功能。在中断处理例程中执行耗时任务时,应该交由中断处理例程底半部来处理。

      d – 访问用户空间虚拟内存
      因为中断上下文是和特定进程无关的,它是内核代表硬件运行在内核空间,所以在中断上下文无法访问用户空间的虚拟地址

      e – 中断处理例程不应该设置成reentrant(可被并行或递归调用的例程)
      因为中断发生时,preempt和irq都被disable,直到中断返回。所以中断上下文和进程上下文不一样,中断处理例程的不同实例,是不允许在SMP上并发运行的。

      f – 中断处理例程可以被更高级别的IRQ中断
      如果想禁止这种中断,可以将中断处理例程定义成快速处理例程,相当于告诉CPU,该例程运行时,禁止本地CPU上所有中断请求。这直接导致的结果是,由于其他中断被延迟响应,系统性能下降。

    原子上下文

      内核的一个基本原则就是:在中断或者说原子上下文中,内核不能访问用户空间,而且内核是不能睡眠的。也就是说在这种情况下,内核是不能调用有可能引起睡眠的任何函数。一般来讲原子上下文指的是在中断或软中断中,以及在持有自旋锁的时候。内核提供 了四个宏来判断是否处于这几种情况里:

      这四个宏所访问的count都是thread_info->preempt_count。这个变量其实是一个位掩码。最低8位表示抢占计数,通常由spin_lock/spin_unlock修改,或程序员强制修改,同时表明内核容许的最大抢占深度是256。

      8-15位是软中断计数,通常由local_bh_disable/local_bh_enable修改,同时表明内核容许的最大软中断深度是256。

      16-27位是硬中断计数,通常由enter_irq/exit_irq修改,同时表明内核容许的最大硬中断深度是4096。

      第28位是PREEMPT_ACTIVE标志。用代码表示就是:

    PREEMPT_MASK: 0x000000ff
    
    SOFTIRQ_MASK: 0x0000ff00
    
    HARDIRQ_MASK: 0x0fff0000
    

      凡是上面4个宏返回1得到地方都是原子上下文,是不容许内核访问用户空间,不容许内核睡眠的,不容许调用任何可能引起睡眠的函数。而且代表thread_info->preempt_count不是0,这就告诉内核,在这里面抢占被禁用。

      但是,对于in_atomic()来说,在启用抢占的情况下,它工作的很好,可以告诉内核目前是否持有自旋锁,是否禁用抢占等。但是,在没有启用抢占的情况 下,spin_lock根本不修改preempt_count,所以即使内核调用了spin_lock,持有了自旋锁,in_atomic()仍然会返回 0,错误的告诉内核目前在非原子上下文中。所以凡是依赖in_atomic()来判断是否在原子上下文的代码,在禁抢占的情况下都是有问题的。

      更详细的关于Linux内核的竞争与并发可以看这篇文章面试官让你你讲讲Linux内核竞争的与并发,你该如何回答?

    展开全文
  • 谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文  上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行时的环境;  具体来说就是各个变量和数据,...

            谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念:

    a -- 上下文

           上下文是从英文context翻译过来,指的是一种环境相对于进程而言,就是进程执行时的环境;

           具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。

    b -- 原子

           原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 


    一、为什么会有上下文这种概念

             内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地址空间。

             其中处理器总处于以下状态中的一种:

             内核态,运行于进程上下文,内核代表进程运行于内核空间;

             内核态,运行于中断上下文,内核代表硬件运行于内核空间;

             用户态,运行于用户空间。

      系统的两种不同运行状态,才有了上下文的概念。用户空间的应用程序,如果想请求系统服务,比如操作某个物理设备,映射设备的地址到用户空间,必须通过系统调用来实现。(系统调用是操作系统提供给用户空间的接口函数)。

           通过系统调用,用户空间的应用程序就会进入内核空间,由内核代表该进程运行于内核空间,这就涉及到上下文的切换,用户空间和内核空间具有不同的 地址映射,通用或专用的寄存器组,而用户空间的进程要传递很多变量、参数给内核,内核也要保存用户进程的一些寄存器、变量等,以便系统调用结束后回到用户 空间继续执行,


    二、进程上下文

            所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它 需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。

           一个进程的上下文可以分为三个部分:用户级上下文寄存器上下文以及系统级上下文

           用户级上下文: 正文、数据、用户堆栈以及共享存储区;

           寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP);

           系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈。

           当发生进程调度时,进行进程切换就是上下文切换(context switch)。

           操作系统必须对上面提到的全部信息进行切换,新调度的进程才能运行。而系统调用进行的是模式切换(mode switch)。模式切换与进程切换比较起来,容易很多,而且节省时间,因为模式切换最主要的任务只是切换进程寄存器上下文的切换

           进程上下文主要是异常处理程序和内核线程。内核之所以进入进程上下文是因为进程自身的一些工作需要在内核中做。例如,系统调用是为当前进程服务的,异常通常是处理进程导致的错误状态等。所以在进程上下文中引用current是有意义的。


    三、中断上下文

           硬件通过触发信号,向CPU发送中断信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核, 内核通过这些参数进行中断处理。

           所以,“中断上下文”就可以理解为硬件传递过来的这些参数和内核需要保存的一些环境,主要是被中断的进程的环境。

           内核进入中断上下文是因为中断信号而导致的中断处理或软中断。而中断信号的发生是随机的,中断处理程序及软中断并不能事先预测发生中断时当前运行的是哪个进程,所以在中断上下文中引用current是可以的,但没有意义。

           事实上,对于A进程希望等待的中断信号,可能在B进程执行期间发生。例如,A进程启动写磁盘操作,A进程睡眠后B进程在运行,当磁盘写完后磁盘中断信号打断的是B进程,在中断处理时会唤醒A进程。


    四、进程上下文 VS 中断上下文

           内核可以处于两种上下文:进程上下文和中断上下文。

          在系统调用之后,用户应用程序进入内核空间,此后内核空间针对用户空间相应进程的代表就运行于进程上下文。

          异步发生的中断会引发中断处理程序被调用,中断处理程序就运行于中断上下文。

          中断上下文和进程上下文不可能同时发生。

       运行于进程上下文的内核代码是可抢占的,但中断上下文则会一直运行至结束,不会被抢占因此,内核会限制中断上下文的工作,不允许其执行如下操作

     a -- 进入睡眠状态或主动放弃CPU

            由于中断上下文不属于任何进程,它与current没有任何关系(尽管此时current指向被中断的进程),所以中断上下文一旦睡眠或者放弃CPU,将无法被唤醒。所以也叫原子上下文(atomic context)。

    b -- 占用互斥体

            为了保护中断句柄临界区资源,不能使用mutexes。如果获得不到信号量,代码就会睡眠,会产生和上面相同的情况,如果必须使用锁,则使用spinlock。

    c --  执行耗时的任务

           中断处理应该尽可能快,因为内核要响应大量服务和请求,中断上下文占用CPU时间太长会严重影响系统功能。在中断处理例程中执行耗时任务时,应该交由中断处理例程底半部来处理。

    d -- 访问用户空间虚拟内存

           因为中断上下文是和特定进程无关的,它是内核代表硬件运行在内核空间,所以在中断上下文无法访问用户空间的虚拟地址

    e -- 中断处理例程不应该设置成reentrant(可被并行或递归调用的例程)

           因为中断发生时,preempt和irq都被disable,直到中断返回。所以中断上下文和进程上下文不一样,中断处理例程的不同实例,是不允许在SMP上并发运行的。

    f -- 中断处理例程可以被更高级别的IRQ中断

          如果想禁止这种中断,可以将中断处理例程定义成快速处理例程,相当于告诉CPU,该例程运行时,禁止本地CPU上所有中断请求。这直接导致的结果是,由于其他中断被延迟响应,系统性能下降。


    五、原子上下文

           内核的一个基本原则就是:在中断或者说原子上下文中,内核不能访问用户空间,而且内核是不能睡眠的。也就是说在这种情况下,内核是不能调用有可能引起睡眠的任何函数。一般来讲原子上下文指的是在中断或软中断中,以及在持有自旋锁的时候。内核提供 了四个宏来判断是否处于这几种情况里:

    #define in_irq()     (hardirq_count()) //在处理硬中断中
    #define in_softirq()     (softirq_count()) //在处理软中断中
    #define in_interrupt()   (irq_count()) //在处理硬中断或软中断中
    #define in_atomic()     ((preempt_count() & ~PREEMPT_ACTIVE) != 0) //包含以上所有情况

          这四个宏所访问的count都是thread_info->preempt_count。这个变量其实是一个位掩码。最低8位表示抢占计数,通常由spin_lock/spin_unlock修改,或程序员强制修改,同时表明内核容许的最大抢占深度是256。

      8-15位是软中断计数,通常由local_bh_disable/local_bh_enable修改,同时表明内核容许的最大软中断深度是256。

    16-27位是硬中断计数,通常由enter_irq/exit_irq修改,同时表明内核容许的最大硬中断深度是4096。

    第28位是PREEMPT_ACTIVE标志。用代码表示就是:

    PREEMPT_MASK: 0x000000ff

    SOFTIRQ_MASK: 0x0000ff00

    HARDIRQ_MASK: 0x0fff0000

           凡是上面4个宏返回1得到地方都是原子上下文,是不容许内核访问用户空间,不容许内核睡眠的,不容许调用任何可能引起睡眠的函数。而且代表thread_info->preempt_count不是0,这就告诉内核,在这里面抢占被禁用。

          但 是,对于in_atomic()来说,在启用抢占的情况下,它工作的很好,可以告诉内核目前是否持有自旋锁,是否禁用抢占等。但是,在没有启用抢占的情况 下,spin_lock根本不修改preempt_count,所以即使内核调用了spin_lock,持有了自旋锁,in_atomic()仍然会返回 0,错误的告诉内核目前在非原子上下文中。所以凡是依赖in_atomic()来判断是否在原子上下文的代码,在禁抢占的情况下都是有问题的。




    展开全文
  • 多线程频繁上下文切换

    万次阅读 2020-08-06 13:26:10
    什么是上下文切换 在单核cpu中,多线程的执行是通过cpu的时间片分配,每个线程会分配到一个时间片,循环执行这些线程,线程时间片消耗完了就会进入等待状态,直到分配到新的时间片,因为时间片的时间非常短,所以cpu...

    什么是上下文切换

    在单核cpu中,多线程的执行是通过cpu的时间片分配,每个线程会分配到一个时间片,循环执行这些线程,线程时间片消耗完了就会进入等待状态,直到分配到新的时间片,因为时间片的时间非常短,所以cpu不停的切换线程执行,给我们造成了多线程同时运行的错觉。

    cpu通过时间片循环执行线程任务,当线程的cpu时间片用完后会保存当前任务状态,方便下次获取到cpu时间片的时候能继续执行,当下次分配时间片后执行到该线程时,会重新加载该线程的任务状态,而这个从保存任务状态到重新加载的过程就叫上下文换。

    上下文切换会带来什么影响

    每次上下文切换也都要消耗cpu资源的,就好比看英文书一样,你边英文看边去看翻译,在你看翻译之前你必须要记住当前英文书看到了第几页,这样的切换是会影响读书的效率,同样上下文切换也会影响多线程的执行速度。

    当前线程在时间片使用完前执行完毕,cpu进行线程切换,不会造成cpu资源浪费。

    减少上下文切换

    1.无锁并发编程:因为每次锁的竞争都会引起上下文切换
    2.CAS算法:CAS算法是一种替代锁的方式,不需要加锁也能达到原子性(我更愿意说数据的一致性)
    3.协程:一种比线程还要小的执行单位,能在单线程中进行多任务切换。

    展开全文
  • Python上下文管理器

    千次阅读 多人点赞 2020-09-25 10:51:34
    1. 上下文管理器 一个类只要实现了 __enter__() 和 __exit__() 这个两个方法,通过该类创建的对象我们就称之为上下文管理器。 上下文管理器可以使用 with 语句,with语句之所以这么强大,背后是由上下文管理器做支撑...
  • 揭秘Context(上下文

    万次阅读 多人点赞 2019-03-08 00:03:13
    意为”上下文“。 本文主要记述,Context到底是什么、如何理解Context、一个APP可以有几个Context、Context能干啥、Context的作用域、获取Context、全局获取Context技巧。 思考: Java:万物皆对象。Flutter:万物皆...
  • Flask——请求上下文和应用上下文

    千次阅读 2019-08-09 10:06:14
    在flask框架中,引入了上下文的概念,为了能够让大家真实的感受到上下文在flask框架中所起到的作用,所以下面我就用一个具体的需求实例来给大家进行说明,首先在我不使用上下文思路的情况下来解决这一需求,然后再...
  • 中断上下文、进程上下文

    千次阅读 2016-03-21 16:28:03
    介绍什么是上下文,为什么要引入上下文。内核的几种运行状态,中断上下文和进程上下文的区别,已经中断一些特有的属性。
  • web上下文(Servlet context),spring上下文(WebApplication Context),springmvc上下文(mlWebApplicationCont)之间区别.上下文:可以简单的理解为容器,配置文件web上下文目标对象是所有web应用,spring上下文目标...
  • public class MyService { public void DoWork() { var context=HttpContext.Current; // continue with context instance } }
  • Python with上下文管理及自定义上下文管理 一、上下文管理器 上下文管理器是对Context Manager的翻译 ,上下文是 context 直译的叫法,在程序中用来表示代码执行过程中所处的前后环境. 在文件操作时,需要打开,...
  • 线程上下文切换

    千次阅读 热门讨论 2021-02-28 15:07:26
    文章目录前言上下文切换上下文切换会消耗资源吗?如何减少上下文切换导致额外的开销 前言 曾经有一份丰厚的报酬摆在我面前,我没有珍惜。直到失去之后我才意识到,我可以会写线程上下文切换。 如果客户能给我一次...
  • 进程上下文与线程上下文

    千次阅读 2016-07-04 15:06:02
    6.1.2 线程上下文 操作系统管理很多进程的执行。有些进程是来自各种程序、系统和应用程序的单独进程,而某些进程来自被分解为很多进程的应用或程序。当一个进程从内核中移出,另一个进程成为活动的,这些进程之间...
  • 进程上下文与中断上下文的理解

    千次阅读 2018-06-06 17:38:10
    一.什么是内核态和用户态 内核态:在内核空间执行...什么是进程上下文与中断上下文 1.进程上下文: (1)进程上文:其是指进程由用户态切换到内核态是需要保存用户态时cpu寄存器中的值,进程状态以及堆栈上的内容...
  • 进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总...
  • 上下文菜单与上下文操作模式

    千次阅读 2015-09-10 22:20:18
    长按ListView或GridView列表项删除某一条记录是一种上下文操作,即它是与某个特定屏幕视图(单个列表项)而非整个屏幕相关联的。在Honeycomb以前版本的设备上,上下文操作是在浮动上下文菜单中呈现的。而在之后的...
  • 上下文对象

    千次阅读 2018-01-28 20:14:14
    一、上下文概念: 每一个Web Project,运行时都部署在Tomcat下,称为一个应用。 部署后,启动Tomcat时,Tomcat将为每一个应用创建一个对象,这个对象称之为上下文对象。 一个应用有且只有一个上下文对象,由容器...
  • Servlet上下文

    千次阅读 2018-07-06 17:13:51
    该对象我们一般称之为Servlet上下文。特点:唯一性:一个web应用对应一个Servlet上下文。持久性:只要容器没有关闭,应用没有被删除,则Servlet上下文会一直存在。如何获得Servlet上下文?GenericServlet,...
  • 线程上下文切换与进程上下文切换

    千次阅读 2017-09-27 18:29:24
    硬件上下文:(注意中断也要保存硬件上下文只是保存的方法不同)。 2、进程切换分3步 a.切换页目录以使用新的地址空间 b.切换内核栈 c.切换硬件上下文 3、线程切换  对于linux来说,线程和进程的最大区别就...
  • 上下文context:上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。  一个进程的上下文可以分为三个部分:用户...
  • 安全上下文

    千次阅读 2015-04-21 21:05:23
    (一)、类型强制策略的安全上下文 所有的操作系统访问控制都是基于与主体和客体相关的访问控制属性的。在SELinux中,访问控制属性杯称作安全上下文。所有的客体(文件,进程间通信,通信管道,套接字,网络主机等...
  • JavaScript执行上下文与执行上下文

    千次阅读 2018-07-22 20:36:28
    JavaScript执行上下文与执行上下文栈 变量提升与函数提升 1、变量声明提升 通过var定义(声明)的变量,在定义语句之前就可以访问到 值为:undefined 2、函数声明提升 通过function声明的函数,在之前就可以...
  • 上下文菜单

    千次阅读 2018-06-08 11:23:25
    一:什么是上下文菜单:用户长安指定的view超过2秒后自动弹出的菜单;二:编写上下文菜单的步骤: 1、将上下文菜单注册到指定的view对象上 this.registerForContextMenu(view); 2、重写Activity的...
  • QQmlContext设置上下文

    千次阅读 2019-04-03 22:17:38
    使用QQmlContext类加载qml界面的上下文
  • spring上下文和springMVC上下文的关系

    千次阅读 2017-12-05 14:02:04
    在tomcat部署一个用SSM搭起来的项目,一般会有两个上下文容器,分别是spring和SpringMVC的容器,在spring中一个容器是可以有父容器的,那么spring的容器和SpringMVC的容器关系是怎么样的。 先看tomcat中的web.xml...
  • JS之执行上下文与执行上下文

    千次阅读 2018-12-04 18:43:49
    分享一下JS中很基础也很重要的概念:执行上下文(Execution Context); 将我们的代码进行分类: 1.代码分类(位置):  * 全局代码  * 函数(函数)代码. 2.全局执行上下文  (1) 在执行全局代码前将window确定为全局...
  • 一、 执行上下文 1、理解执行上下文 广义上来说: 执行上下文一套非常严格的规则 狭义上来说: 执行上下文一个c++对象 2、 定义:执行上下文以一套非常严格的规则,规范变量存储、提升、this指向。 3、分类:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,901
精华内容 48,760
关键字:

上下文