V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  byte10  ›  全部回复第 24 页 / 共 89 页
回复总数  1768
1 ... 20  21  22  23  24  25  26  27  28  29 ... 89  
2023-05-03 19:23:28 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@leatomic 好家伙这个调试 也是大问题,看来还是要虚拟线程才行,,不然一直堵塞 eventloop 的 代码。。还是引入虚拟线程比较好调试。
2023-05-03 19:15:52 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@dreamlike 嗯好的,你那个不错,我研究下。
2023-05-03 16:42:48 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@dreamlike
@WispZhan
两位提到的 continuaion Coroutine 确实是我的想要的东西 应该能解决异步编程问题,不知道实现起来是否很难。。回头研究下,那就可以不用虚拟线程了。
2023-05-03 16:31:43 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@lixintcwdsg @lightjiao @WispZhan @dreamlike

我添加代码到 附言那里,刚才那个代码展示太乱了,不方便阅读。那代码示例 应该很清晰描述我的应用场景了。

目前还不想使用 kotlin 来重构,太多东西了。
2023-05-03 16:21:16 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@lixintcwdsg @lightjiao @WispZhan @dreamlike

这个一个代码示例,一个是异步写法,一个是同步的写法。我是用虚拟线程就是了能解决异步编程的问题。当然是用传统的线程池也可以解决异步编程的问题,但是明显太重。。 这个就是我是用虚拟线程的原因。


```
public class AsyncVerticle extends AbstractVerticle {

private Map<String, String> map = new HashMap<>(2);

public void start() throws Exception {
// map 的操作是线程安全的,但是 http 请求代码的模式是异步编程
vertx.setPeriodic(123, id -> {
httpRequest().onSuccess(res -> {
if (res != null) {
httpRequest().onSuccess(nextRes -> {
map.put("result", nextRes);
});
}
});
});
vertx.eventBus().consumer("httpReq", event -> {
httpRequest().onSuccess(res -> {
map.put("result", res);
});
});

// =====================使用虚拟线程,并且使用同步编程==================
SyncVertxWraper syncVertx = new SyncVertxWraper((VertxInternal) getVertx(), true);
// 启动虚拟线程运行,下面代码全是运行在虚拟线程中
syncVertx.getOrCreateContext().runOnContext((ctx) -> {
vertx.setPeriodic(123, id -> {
// 运行在虚拟线程中,如果虚拟线程绑定在同一个 eventloop 线程中,那么 map 就会线程安全。异步可以转成同步写法
String res = Async.await( httpRequest());
if (res != null) {
res = Async.await( httpRequest());
map.put("result", res);
}
});
vertx.eventBus().consumer("httpReq", httpResult -> {
// 运行在虚拟线程中,如果虚拟线程绑定在同一个 eventloop 线程中,那么 map 就会线程安全。
String res = Async.await( httpRequest());
map.put("result", res);
});
});
}

}
```
2023-05-03 15:59:21 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@lixintcwdsg 我觉得 虚拟线程并不是干掉 eventloop 的。vert.x actor 模型下 多线程并发变得安全,虚拟线程并没有解决线程安全的问题。即便有虚拟线程, 仍然需要它 来解决多线程并发的问题。
2023-05-03 11:26:57 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@lightjiao 额,java 确实是没有 async 和 await 。vert.x 确实很强,设计上就解决了很多问题。
@dreamlike continuation api ,我去研究下。但是这个 continuation 能否解决 多线程安全的问题呢 ,因为我的目的是避免多线程安全问题。
2023-05-03 10:52:38 +08:00
回复了 byte10 创建的主题 Java 有没有 vert.x 或者有关注 Java 虚拟线程的群
@lixintcwdsg 额,这个和 vertx 不太一样。你说业务线程池是可以直接用虚拟线程,但是业务线程会产生线程并发的安全问题,所以 verticle 才需要绑定一个 eventloop 线程。而我的虚拟线程 都是从在这个 eventloop 线程上运行,来确保我所有的业务都是线程安全的。

现在的问题 平台 eventloop 线程直接去运行 log.info() 这个方法就会出问题,我无法控制这个 eventloop 线程 会不会被其他的地方使用到,而且它是 vert.x 框架的东西,里面会不会有其他的坑我也不知道。我可以确保 我的代码不会直接使用 eventloop 线程 执行任何 代码,但是也不能确保其他人开发 会不会使用上。而且日志是刚需。。。比较难搞。

使用虚拟线程 本质是为了 解决异步的问题,如果用普通线程池也可以解决,但是就会产生多线程安全的问题。如果我的虚拟线程 固定在定一个 eventloop 线程运行,就能保证线程并发安全,又能解决异步的问题。
2023-05-01 17:38:40 +08:00
回复了 softerzhangyu 创建的主题 问与答 同价位选择 Mac 还是 win
@softerzhangyu vscode 远程 开发 remote ssh ,你可以搜索下。你是做什么言语开发的?
2023-05-01 11:12:55 +08:00
回复了 softerzhangyu 创建的主题 问与答 同价位选择 Mac 还是 win
如果楼主可以接受 vscode 的 远程开发,那么可以用一个丐版的 macbook air M1 。然后全程到 remote 到远程机器上开发。我就是这样操作的。现在内存便宜,一个 5800H 小主机 1500 ,64G 内存 700 ,整机也就是 2500 不到了。不在乎体积的话,可以搞 7D12 ,32 核心,性能也是很强,不到 100w 功耗也很巴适。多核性能却接近到 13900K ,cpuz 差不多 16000 分,还要啥自行车呢。

远程主机的好处是 code anywhere ,客户端可以是 ipad ,可以是 windows ,macos 。不用每次换电脑安装开发环境
2023-04-23 11:08:18 +08:00
回复了 binarymann 创建的主题 问与答 固态硬盘辣么便宜了,当下性价比最高的外置是?
@dcsite 👌🏻,收到
2023-04-23 09:31:17 +08:00
回复了 binarymann 创建的主题 问与答 固态硬盘辣么便宜了,当下性价比最高的外置是?
最便宜当前是阿里云盘啊,不限速。配合 alist-encrypt ,上传自动加密,又能网页在线观看加密的视频和图片,文本,还要啥自行车😄。又支持 wendav 查看加密的图片和视频,很 6
@Puteulanus 这个玩意不错。不知道怎么玩,性能简直入我心。超强,很细腻,待机功耗低。
@LxnChan alist-encrypt 就是可以理解为一个反向代理 nginx ,S905L3A arm 盒子 单核可以跑满 500M ,一个字很强,看看我视频演示,看完你就会喜欢上。https://www.zhihu.com/zvideo/1627064703548657664
@VoiceEXONE 可以看看 alist-encrypt ,自动加密文件,又能自动在线查看文件,非常不错的设计。透明加密,支持 AES 加密,RC4 加密
@leefor2020 那可以看看我的这个 alist-encrypt ,就是自动做这个事情的了
@guanzhangzhang 没事啦,随便搞啦,生死看淡。你试试呗,还是很不错哦。
@LxnChan
@BQsummer 默认使用 302 ,直接链接到阿里云的

可以体验一下 alist-encrypt 超吊,上传的时候自动加密,又可以在线播放加密视频和图片。下载的时候自动解密。也支持名字加密。还支持 webdav 直接在线播放视频和图片,这的很强,符合大家的加密需求,和实时播放需求。
2023-04-17 11:11:58 +08:00
回复了 wellR 创建的主题 Java 在 SpringBoot 中使用 Netty 的思路,偷梁换柱之计
@wellR java 19 就有预览版,现在 java20 版本也出来了。预计明年应该可以出生产 版吧。前期我推荐使用 线程池 来解决代码同步编程的问题(异步转同步 ),后续直接使用虚拟线程代替线程池,完美接管。可以先了解下 虚拟线程的目前存在的问题吧
2023-04-17 10:57:33 +08:00
回复了 wellR 创建的主题 Java 在 SpringBoot 中使用 Netty 的思路,偷梁换柱之计
我用的是 springboot + vert.x ,我也推荐你使用 vert.x ,当然,最好直接用虚拟线程 + vert.x ,不过我好像测试出现 bug 。你尝试一下
@levenwindy 嗯 目前都差不多了,算法都确定下来了,RC4 和 AES CTR ,文件名字的加密 也做了。就剩下 webdav 的名字加密还没处理完。你可以先体验下 , 有教程 https://www.zhihu.com/zvideo/1627064703548657664 也可以加群关注最新的进展 422035582
1 ... 20  21  22  23  24  25  26  27  28  29 ... 89  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 19:35 · PVG 03:35 · LAX 12:35 · JFK 15:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.