百科问答小站 logo
百科问答小站 font logo



为什么jvm不用协程实现 gc 呢? 第1页

  

user avatar   zhao-ce-33 网友的相关建议: 
      

gc跟io啥关系?

gc不是cpu密集型操作么?

啥时候成io密集型了

io要么操作网络,要么操作硬盘上的文件

gc时候既不需要网络,也不需要硬盘,几乎是纯内存操作,处理的都是内存

协程/虚拟线程/绿色线程 对这一块影响很小

另外java在诞生的时候,有些平台上(比如solaris)就已经有虚拟线程了,那时候叫做green thread,绿色线程

只是后来觉得不应该对操作系统的线程做包装,所以就没有继续使用下去,而且当时的重点也不在那边,有其他更重要的问题要解决

所以java在诞生的时候,就已经有了类似的技术,只是对gc这一块影响并不大

还有就是,现在gc这一块,明显是原来bea的jrockit团队更强

zgc就是bea的jrockit的per liden做的,shenandoah是red hat做的

都不是hotspot团队做的,所以hotspot的人,对短暂停gc的造诣相对没那么深

然后现在在做的虚拟线程,是ron pressler做的,最早ron pressler是做quasar那个东西的

所以java是很大一块东西,很多特性都是不同的人做的

这些人,如果追溯到早期,都不在sun一家公司里面,所以指望一开始就吃成胖子,并不现实




  

相关话题

  CIL instructions和Java byte code的表达能力一样吗? 
  JAVA语言的优缺点是什么? 
  实际开发中ref、out参数有多大作用? 
  为什么 Java 总被黑? 
  为什么大部分程序员都喜欢用黑色界面? 
  消息队列(mq)是什么? 
  java为什么一直不肯在函数中加入传址调用? 
  项目组里的代码审查员要我把代码写的很啰嗦,怎么办? 
  自动注入到底比new好在哪? 
  面向对象中,平行继承体系是否尽量完全抛弃? 

前一个讨论
2010 年代,是否大多数国家和地区倾向于将厕纸直接冲入马桶,而中国人不习惯这样做?如果是,为什么?
下一个讨论
你们认为阳刚之气到底是怎么样的?





© 2025-05-16 - tinynew.org. All Rights Reserved.
© 2025-05-16 - tinynew.org. 保留所有权利