Fibers_fiber bundle

Fibers_fiber bundle要理解Fibers首先需要对抢占式多任务和协作式多任务有所了解抢占式多任务抢占式是指暂停或中断正在执行的计算任务,而不是与其合作。中断后再继续恢复该任务的执行,这种改变又称为上下文切换。其缺点在于操作系统可能会在一个不适当的时间进行上下文切换。例如:Linux的调度程序特权任务Scheduler采用的就是取消进程任务,而不是与其合作。协作式多任务早期的多任务处理系…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

要理解Fibers首先需要对抢占式多任务协作式多任务有所了解

  • 抢占式多任务

抢占式是指暂停或中断正在执行的计算任务,而不是与其合作。中断后再继续恢复该任务的执行,这种改变又称为上下文切换。其缺点在于操作系统可能会在一个不适当的时间进行上下文切换。

例如:Linux的调度程序特权任务Scheduler采用的就是取消进程任务,而不是与其合作。

  • 协作式多任务

早期的多任务处理系统会自愿割让时间给另一个应用程序,这种方法有许多操作系统支持,被称为协作多任务处理。协作多任务依赖于线程,一旦停止则放弃控制权。其缺陷是编写拙劣的代码会堵塞整个系统。

例如:实时嵌入式系统往往采取协作多任务处理方式以获取真正的实时高性能。

什么是Fibers呢?

Fibers是一个轻量的线程,也称为绿色线程。

Fibers是一个可以在Linux等抢占式线程调度下执行协作多任务的Node.js线程库包。

Fibers是一个流程或应用级别的概念,并不对应操作系统的线程。

Fibers提供类似执行流的线程,当操作系统线程是抢占式调用时,开发人员可使用Fibers实现协作多任务。

Fibers的概念类似于协程coroutines,执行时可以被程序暂停或继续。

进程VS线程VS协程VS纤程

在操作系统中,除了进程和线程外,还有一种较少应用的纤程Fiber,又称为协程Coroutine。Fiber常常拿来跟线程做对比,对于操作系统而言,它们都是轻量级的运行态。

通常认为Fiber比线程更加轻量开销更小,不同之处在于:Fiber是由线程或Fiber创建的,Fiber调度完全由用户代码控制。对系统内核而言,是一种非抢占式的调度方式。

Fiber实现了协作式多任务,而线程和进程则受内核调度,依照优先级实现抢占式的多任务。

系统内核是不知道Fiber的具体运行状态,Fiber的使用其实与操作系统是无关的。

Node.js中的Fibers

在Node.js中单线程是仅针对JavaScript而言的,其底层充斥着多线程。如果需要在JavaScript中实现多线程,常见的作法是编写C++的addon来绕过JavaScript的多线程机制。不过这种方法增加了开发调试的成本和难度。

Node.js中node-fibers库为Node提供了纤程的功能,node-fibers采用C语言编写。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/200770.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • httpclient4.x访问https[通俗易懂]

    httpclient4.x访问https[通俗易懂]https有单向认证和双向认证之分,单向认证即客户端只会认证服务端,双向认证是客户端需要认证服务端,服务端也需要认证客户端。先说单向认证,浏览器访问服务端,服务端接收请求,会把证书(包含密钥和其他信息)和加密后响应返回给浏览器。如果这个证书不是向第三方权威机构申请的,浏览器会提示证书有问题(使用httpclient访问的话会报错)。如果忽略错误,则浏览器接受证书并解密响应,发送的数据也用此密钥

  • USB 转 RS-485 / 422 接口转换器

    USB 转 RS-485 / 422 接口转换器USB转RS-485/422接口转换器1.USB转RS-485/422接口转换器2.通信连接图USB<=>RS-422切换USB<=>RS-485切换3.连接器和信号4.故障与排除5.6位接线柱<==>5位接线柱References…

  • 51单片机八路抢答器proteus仿真

    51单片机八路抢答器proteus仿真51单片机八路抢答器由于51单片机小板,按键比较少,还有一些功能上的缺陷,所以说无法完成八路抢答器,所以我们用proteus仿真,代码与实验结果如下:/********************************Function: 八路抢答器Date: Sep20,2017By:Third GroupBolancheL************

    2022年10月20日
  • python利用海伦公式求三角形的面积

    python利用海伦公式求三角形的面积前言从小学我们都知道,三角形的面积是底乘以高除以2。那么已知任意一个三角形的三条边,如何能够求出三角形的面积呢?这里我们用到了海伦公式。海伦公式又译作希伦公式、海龙公式、希罗公式等,它是利用三角形的三条边的边长直接求三角形面积的公式,表达式为:其中p是三条边的和的一半儿。python根据三角形三条边求面积1.三角形的三条边的符合条件我们知道,三角形有三条边,且三条边…

    2022年10月21日
  • 实时示波器_示波器proteus怎么找

    实时示波器_示波器proteus怎么找原创:转载请著名出处。代码整理后将在GIThub发出。本文主要介绍驱动以及连接问题。首先,如果我们要使用NI-VISA协议,我们必须安装VISA的驱动。我们可以先检查一下有没有。C:\Windows\System32或者C:\Windows\SysWOW64如果有,恭喜你,你省去一大笔时间。如果没有,恭喜你,这里将告诉你如何安装。https://dl…

  • 光流法的理解

    光流法的理解光流法是比较经典的运动估计方法,本文不仅叙述简单明了,而且附代码,故收藏.在空间中,运动可以用运动场描述。而在一个图像平面上,物体的运动往往是通过图像序列中不同图象灰度分布的不同体现的。从而,空间中的运动场转移到图像上就表示为光流场,光流场反映了图像上每一点灰度的变化趋势。光流可以看作带有灰度的像素点在图像平面运动产生的瞬时速度场。下面我们推导光流方程:假设E(x,y,t)为(x,y)点在时刻t的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号