V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guyeu  ›  全部回复第 7 页 / 共 34 页
回复总数  672
1 ... 3  4  5  6  7  8  9  10  11  12 ... 34  
2022-09-15 21:35:50 +08:00
回复了 yazinnnn 创建的主题 Java loom 在 quarkus 中的基本应用
略看了一下,整理如下,欢迎指正

编译阶段,Quarkus 分析代码,识别以下注解:
- @RunOnVirtualThread
- @Blocking
- @NonBlocking

`Virtual Thread`是 Java 的一种数据结构,和操作系统的线程没有对应关系。

对于`@RunOnVirtualThrad`或`@Blocking`或`Reactive`类型的返回值,在执行到这个方法时,这个方法会向`Virtual Thread`注册一个`run()`操作,这个方法会被称为`Poller`的线程调度执行,这个过程中会转存(`park`)线程上下文(堆栈、ThreadLocal ),遇到阻塞逻辑时,`Virtual Thread`会`Pinned`,但不影响实际执行逻辑的线程,方法执行结束(阻塞逻辑完成)时,`Poller`会通过`unpark`操作把逻辑调度回`Carrier Thread`。

对于`@Blocking`或者`Imperative`类型的返回值,这个方法会正常在`Workder`线程执行。


**NEVER BLOCK THE EVENT LOOP**
`Carrier Thread`也是一种`Event Loop`,阻塞`Event Loop`和阻塞`Reactive`模型的`Event Loop`会导致同样的后果(**Crash**)。

### 基准测试

- 响应时间(阻塞模型的响应时间在 1000 并发时超过 5s ,virtual_thread 在 1200 并发时超过 5s ,reactive 模型在 1500 附近超过 5s )
- 低并发(<1000 )时:reactive = virtual_thread > blocking
- 中并发( 1000~1800 )时:reactive > virtual_thread > blocking
- 高并发(>1800 )时:reactive > virtual_thread > blocking
- 吞吐量
- 低并发(<1000 )时:blocking = reactive = virtual_thread
- 中并发( 1000~1800 )时:reactive = virtual_thread >> blocking
- 高兵伐(>1800 )时:reactive ❯ virtual_thread >> blocking

整体上数据远远优于阻塞模型,但略差于 reactive 模型,在响应时间上的差距比较明显。
脸上鼠标就可以操作蓝牙了呀
以前我也经常遇到这个问题,直到换了 64G 的 studio
2022-06-15 10:54:45 +08:00
回复了 ccnotfound 创建的主题 旅行 新疆自驾游找队友
疫情啥情况哇
maven 项目启动主类的时候默认没有把 provided 的依赖放在 classpath ,IDEA 有个启动选项可以很方便调整这个行为,vscode 不行...
2022-05-18 19:43:24 +08:00
回复了 Edcwsyh 创建的主题 游戏开发 游戏服务器开发人员有没有必要学习客户端的相关技术?
c++必了解啊,后面可以转全栈
2022-05-02 14:45:11 +08:00
回复了 passer9527 创建的主题 Java 搞了个 Java 交流的 discord 群
填了几十遍验证码,放弃了
2022-04-13 11:21:38 +08:00
回复了 dunhanson 创建的主题 程序员 为什么要区分不同的 http 状态码?想说服同事
想问下楼上鼓吹 restful 风格的大佬,业务内部的错误码咋给客户端? 401 Bad Request + {"err": 1001, "msg": "are you ok?"}
2022-03-18 20:29:20 +08:00
回复了 shiroikuma 创建的主题 程序员 像那种手游活动分数的实时排名一般是怎么实现的
Redis 开 AOF 就不会丢数据,但其实实际上手游那点数据量随便哪个 SQL/NoSQL 都没啥压力。
2022-03-12 21:31:16 +08:00
回复了 darklinden 创建的主题 程序员 PHP 原来是这么神奇的语言吗?
locla 是个 typo 吧,如果这都能跑的话确实有点惊讶
2022-03-12 14:16:50 +08:00
回复了 yanjieee 创建的主题 Apple 请问一下官网这两款妙控触摸板有什么区别?
三代是 typec 口吗
2022-03-11 20:57:32 +08:00
回复了 x97bgt 创建的主题 职场话题 觉得老板的方案很烂又无可奈何,来寻求一些安慰
找他聊聊吧,听你这意思是一个技术出身的老板,这方面通常是比较好沟通的。
2022-03-10 21:16:19 +08:00
回复了 anxn 创建的主题 Java 吐槽 为啥 Java 的一些库起名都这么奇怪?
一直 get 不到 x86_64 、aarch 的点。。。
有类似`try-catch`的语句可以在成功 /失败 /完成时执行操作,比如发邮件通知执行结果
2022-03-05 20:11:18 +08:00
回复了 JasonLaw 创建的主题 程序员 之后想使用 Garuda Linux 进行日常工作,买什么电脑好呢?
@root01 对各种无线设备的支持怎么样?
2022-03-05 14:30:43 +08:00
回复了 JasonLaw 创建的主题 程序员 之后想使用 Garuda Linux 进行日常工作,买什么电脑好呢?
@JasonLaw 😄用这种激进的发行版
2022-03-05 11:41:09 +08:00
回复了 JasonLaw 创建的主题 程序员 之后想使用 Garuda Linux 进行日常工作,买什么电脑好呢?
暴躁老哥
2022-03-05 11:35:20 +08:00
回复了 mawerss1 创建的主题 Java 如何打包魔改后的基于 maven 构建的开源项目
有两种,一种是你改动不大没有兼容性问题的话,修改 groupId 、artifactId 然后发布就行,一般也没别人用,标记清楚你的改动别人能区分就好;另一种是你的改动比较大,那就要在第一种的基础上增加包名的前缀,避免同时引用造成兼容性问题,一般是混合其他东西打包发布。

不管是哪种,都要注意开源协议是不是允许你二次分发。。
1 ... 3  4  5  6  7  8  9  10  11  12 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2908 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 03:28 · PVG 11:28 · LAX 20:28 · JFK 23:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.