当前位置: 首页 > news >正文

医疗门户网站模板科技型中小企业税收优惠政策2022

医疗门户网站模板,科技型中小企业税收优惠政策2022,建设工程消防验收查询网站,广州档案馆建设网站1 同步、异步 1.1 同步 代码顺序执行,完全由用户控制. 同步阻塞 等待可读、可写的时候阻塞,不让出cpu。读、写之后,下面的代码才能执行、 同步非阻塞 等待可读、可写时,不会阻塞cpu,返回失败,设置错误码为…

1 同步、异步

1.1 同步

代码顺序执行,完全由用户控制.

同步阻塞

等待可读、可写的时候阻塞,不让出cpu。读、写之后,下面的代码才能执行、

同步非阻塞

等待可读、可写时,不会阻塞cpu,返回失败,设置错误码为EAGAIN 或 EWOULDBLOCK ,告知应用程序此时没有数据可读,用户需要自行决定怎样等待数据到来

可以轮询,

使用epoll,为fd注册读事件,然后去执行其它操作

1.2 异步

代码不按照顺序执行,不完全由用户控制。

异步的实现方式:        

  1.           异步库和异步框架:libevent、ibuv、libev等
  2.           操作系统异步io接口
  3.           c++11异步机制:std::async 和 std::future

异步IO库大概逻辑

将套接字设置为非阻塞状态,然后为套接字的事件绑定回调函数,接下来进入IO多路复用的循环,等待事件发生,调用对应的回调函数。 

2 进程、线程、协程

进程是操作系统进⾏资源分配的基本单位,每个进程都有⾃⼰的独⽴内存空间;

线程是cpu调度的基本单位,线程共享父进程的虚拟地址空间;

协程是用户态线程,协程通常在线程中运行

2.1 切换上下文

进程

cpu上下文——寄存器

内存管理上下文——页表相关

资源管理上下文——文件句柄等

同步机制上下文——锁、信号量等

线程

线程切换不需要切换虚拟地址空间,

只需要切换cpu寄存器上下文和少量的资源管理上下文

协程

部分cpu寄存器,

当前调用栈栈基地址代码的执行位置等,当前的上下文保存到线程的堆区

2.2 多进程/线程/协程

多进程

fork()创建子进程,子进程拷贝父进程地址空间,写时复制,代码段相同,执行任务相同

exec 系列函数可以在子进程中加载新的可执行程序,将子进程的代码替换为新程序的代码。这样,子进程将执行与父进程不同的任务。

多线程

父进程创建多个线程,每个线程有自己的入口函数,执行不同的任务。多个线程共享父进程的资源。

协程

每个协程由自己的入口函数,执行不同的任务。

协程通常是在单线程中运行的,协程可以在线程中实现切换,开销比线程和进程切换小,可以实现高并发。

协程经常与多线程一起使用。

3 协程优缺点

协程优点

轻量级:创建和销毁开销小,占用资源少

高并发:协程切换开销小,速度快,可同时处理更多的协程,实现高并发。协程切换在线程中进行,由用户控制,避免了线程切换的开销。


 不是很理解!!!====================???=================================

简化异步编程使用类似于同步编程的方式编写异步代码,避免避免了回调函数嵌套和复杂的并发控制逻辑,使得代码更加清晰和易于理解。

缺点

⽆法利⽤多核资源:线程才是系统调度的基本单位,单线程下的多协程本质上还是串⾏执⾏的,只能⽤到单核计算资源,所以协程往往要与多线程、多进程⼀起使⽤。 

难以调试:由于协程的切换和异步执行,调试协程代码可能更加困难。当协程之间存在复杂的依赖关系和交互时,追踪问题的根因可能变得复杂。

4 协程适用于I/O密集型任务的原因

I/O密集型任务通常涉及等待外部资源,等待的过程中,需要释放cpu,切换到其它任务。协程切换快速,开销小。

使用线程的话,线程阻塞等待IO,会切换到其它线程,切换开销比协程大

单核

不管使用多线程还是协程,都只能串行处理。

如果是cpu密集型任务,多线程和协程区别不大,因为不会频繁因为阻塞切换;

如果是io密集型任务,需要经常切换,协程切换效率更高。

多核

多线程的优势就是可以利用多核处理器,而协程只能在一个线程上运行。

IO密集型任务,使用多线程+协程

5 协程实现的是真正的异步吗?

可以实现异步效果,但本身并不是异步机制。

本项目中,当一个协程等待io时,可以切换到其他协程。当io完成后,它可以被唤醒并继续执行。这种方式可以让程序在等待I/O的同时执行其他任务,充分利用 CPU 资源,从而达到类似于异步的效果。这并不是真正的异步。

异步编程中:

        各个任务是解耦的,某个任务被阻塞,只影响该任务本身,不影响其它任务的执行

而多线程或协程中:

        任务间仍有一些资源是共享的,当一个线程或协程阻塞或出现异常,可能会影响整个进程的执行。

衡量⼀个协程库性能的标准

响应时间 :衡量在给定负载下协程调度的快慢。较低的响应时间表示更⾼的性能。
吞吐量 :指在单位时间内执⾏的任务数量。较⾼的吞吐量表示更⾼的性能。
并发能⼒ :指同时处理的协程数量。更⾼的并发能⼒表示更好的性能。
上下⽂切换开销: 在协程库中,上下⽂切换是指从⼀个协程切换到另⼀个协程的操作。较低的上下⽂切换开销表示更⾼的性能,因为过多的上下⽂切换会浪费时间和资源。
资源利⽤率 :⼀个好的协程库应该有效地利⽤系统资源,例如处理器、内存和⽹络等。协程库在资源利⽤⽅⾯的优化程度可以影响性能。

7 Go协程

8 C++协程

9 为什么要有空闲协程

在任务队列为空时,阻塞在idel协程中的epoll_wait中。

idel协程负责使用epoll监听事件,实际发生后,将对应回调函数添加到调度队列中。

调度协程只负责任务调度。

降低不同功能之间的耦合,便于后序扩展和维护。

10 每建⽴⼀个⽤户连接就要创建⼀个协程,不会影响性能吗?

 会的,高并发时,会有大量的协程创建和销毁,会占用较多系统资源。

可使用协程池的方法解决。

11 怎样测试的

12 简单介绍项目

http://www.yayakq.cn/news/253518/

相关文章:

  • 百度网站管理网站开发硬件环境怎么填
  • wordpress 全站通知做网站购买服务器
  • html网站首页三大设计软件哪个好
  • 织梦网站模版怎么用制作网站费用分类
  • 北京网站优化找商集客吗工业和信息化部发短信是怎么回事
  • 常用网站开发工具wordpress批量添加分类
  • 精湛的赣州网站建设长沙网站制作公司地址
  • 济南网站制作公司哪家技术好石家庄微信网站制作
  • 网站推广费用预算网页设计基础心得体会
  • 建设银行网站用户密码找回建一个网站需要多少钱?
  • 十大免费游戏网站点开即玩重庆博达建设集团股份有限公司网站
  • 在godaddy做网站贵吗玉树电子商务网站建设哪家快
  • 湘潭做网站品牌磐石网络酷虎云建站
  • 青岛网站开发公司电话宁波 seo排名公司
  • 做自媒体常用的图片网站建网站服务器用哪种
  • 万网做网站给网站源码做艺术字的网站
  • 深圳市网站建设制作设计平台有侧边栏的网站
  • 网站浮动qqacfun网站设计改进
  • 长春哪家做网站做的好庐山市星子网
  • 合肥百姓网网站建设网站工作室 需要什么手续
  • 互联网网站开发用哪个语言开发外贸企业邮箱哪家好
  • 淘宝网站建设百度百科网站ip地址范围
  • 网站专业优化在线做网页的网站
  • 广州网页设计网站wordpress古腾堡编辑器如何使用
  • 迈诺网站建设pc网站自动转换wap网站
  • 基本的网站开发技术路线word如何做网站
  • 廉政建设网评文章网站做网站每个月可以赚多少钱
  • 古装衣服店网站建设页面写app程序用什么软件
  • 网站设计一级网页请seo的人帮做网站排名
  • 卡片式设计网站制作做货源网站可以赚钱吗