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

网站备案方法安卓手机 做网站

网站备案方法,安卓手机 做网站,临沂网站建设技术支持,中山网站排名推广你是不是总听到go与java种种对比#xff0c;其中在高并发的服务器端应用场景会有人推荐你使用go而不是 java。 那我们就从两者运行原理和基本并发设计来对比分析#xff0c;看看到底怎么回事。 运行原理对比 java java 中 jdk 已经帮我们屏蔽操作系统区别。 只要我们下载并… 你是不是总听到go与java种种对比其中在高并发的服务器端应用场景会有人推荐你使用go而不是 java。 那我们就从两者运行原理和基本并发设计来对比分析看看到底怎么回事。 运行原理对比 java java 中 jdk 已经帮我们屏蔽操作系统区别。 只要我们下载并配置好 jdk我们就能执行java 文件了。 go go tool 中使用 go build 就能将 go 代码编译生成对应操作系统的可执行文件可以直接运行。 跨平台实现原理 java 我们会在不同操作系统下去下载适配对应操作系统的 jdk。实现我们一次编写任意运行在各个操作系统的 JVM上。 go 编写go 代码后我们利用 go tools 中编译器指定要执行的操作系统进行 build。 生成一个平台相关的可执行文件在 Windows 上是 .exe 文件在 Linux 或 macOS 上通常是没有扩展名的二进制文件 并发对比 java 线程的生命周期 假设客户端每提交一个任务需要单独 java 线程处理会有如下流程。 java中创建Thread对象用户态在操作系统内核创建一个Thread内核态由操作系统调度对应内核线程 操作系统调度Thread内核态抢占cpu核心 cpu核心执行Thread内核态的机器指令集合 cpu执行任务结束销毁Thread内核态销毁Thread用户态 其实不难发现java 线程模型其实比较偷懒···。对的它基本没干啥直接和一个操作系统的线程绑定1 对 1这样java 就不用考虑线程调度管理了操作系统会调度运行线程。 池化操作 当然作为一名优秀的java开发如果按照上述那样使用线程当有客户端足够多也就是所谓高并发情况下java 线程模型就会导致服务崩溃是的你没有听错崩溃宕机。 所以优秀 java开发常常不会‘裸’使用thread会将使用线程池技术将线程进行池化保存让线程能够复用。 池化的初始化流程 1.java中初始化4个Thread对象用户态 2.操作系统内核中初始化4个Thread内核态 3.客户端提交线程任务到任务队列 4.线程池中线程从任务队列中消费任务内核Thread-就绪态 5.由操作系统调度对应内核线程 池化后流程 1.客户端提交线程任务到任务队列 2.线程池中线程从任务队列中消费任务内核Thread-就绪态 2.由操作系统调度对应内核线程 ps至于线程池详细学习这里就不介绍了。 go 来吧让我们了解了解go的并发模型MPG吧。 ps:这里参考 《Go 并发编程实战》想要详细了解MPG实现细节可以看这本书。 Ggoroutine缩写。每一个并发执行的活动称为G Pprocessor的缩写。一个P代表执行一个Go代码片段所必需的资源或称“上下文环境” Mmachine的缩写。一个M代表一个内核线程 运行流程 1.go 接受并发任务封装 G 2.寻找合适p并放入 p 中p 中存在列表 保存待执行 G 3.p 与某个 M 空闲或新创建进行关联 4.创建一个内核线程与 M 对应 5.由操作系统调度对应内核线程 对比分析 我本身java开发当我了解 MPG 模型我就感觉其实和 java 线程池执行并行任务大差不差。都是池化固定几个内核线程并发执行应用层面提交的任务。就是达到了线程复用省去频繁创建销毁的操作。 那是不是 java 线程池可以和 MPG 并发模型相媲美呢 随着我深入了解发现并不是这样的。仔细想一下 java 线程池怎么使用是在一个业务中我们需要频繁的创建和销毁线程然后我们创建一个线程池给这个业务使用。 是的这个线程池这是这个业务局部使用的。但是 java 其他业务如果没使用线程池直接使用线程并发或者thread-per-request style每个请求启动一个线程 都会造成java 应用中会存在很多没有池化线程。 未池化线程较多还是存在很多线程创建和销毁。应用中存在较多线程会导致竞争比较激烈线程阻塞线程唤醒切换线程这种也会频繁的进行线程内核态上下文切换。 相比于 javago 则是全局模型也就是说整个 go 应用的 M 都是复用的创建和销毁频率会非常小。而且在理想情况能实现一个核心对应一个线程无需资源竞争。另外就是在并发业务编写场景下go 是如此丝滑且高效···· java 就当真不行了吗 java 线程模型虽然笨重但也有自己优势。 复杂的线程上下文代表功能很多例如 threadLocal让我们更加便捷实现一些业务功能用户信息鉴权相关功能都能利用到。此外我对比的是过时的 java8。在 java 新版本中也已经实现了类似goroutines的用户态线程java称作virtual threads有兴趣的可以看看下篇就分享这个。 结语 这篇文章比较基础但又需要你了解 java 相关的并发知识。希望通过图示以及对比分析能让你了解到 java 和 go 的区别。 有任何问题欢迎留言指正哦。
http://www.w-s-a.com/news/618145/

相关文章:

  • 传奇购买域名做网站国外网站设计 网址
  • 西安凤城二路网站建设seo网站是什么
  • 网站后台如何更换在线qq咨询代码在线种子资源网
  • 东莞网站优化制作免费中文wordpress主题下载
  • 东莞建筑设计院排名网络优化论文
  • 做牙工作网站郑州前端开发培训机构
  • 温州专业建站网站制作的管理
  • 公司网站开发策划书有没有专门做教程的网站
  • 江苏省工程建设信息网站一天赚1000块钱的游戏
  • 制作响应式网站报价品牌建设整体体系包括什么
  • 网站推广策划报告目前做win7系统最好的网站
  • 东莞网站建设咨询公江西网站建设平台
  • 什么是网站功能源码下载站
  • 石家庄制作网站的公司双柏县住房和城乡建设局网站
  • 影视vip网站建设教程ppt模板免费下载 素材红色
  • 内蒙古城乡建设部网站首页平台网站建设ppt
  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率