V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  arloor  ›  全部回复第 10 页 / 共 14 页
回复总数  261
1 ... 2  3  4  5  6  7  8  9  10  11 ... 14  
2020-06-25 21:24:47 +08:00
回复了 dcalsky 创建的主题 职场话题 为什么现在就开始招聘 2021 届毕业生了?
可以就近找香港的
不清楚国内形势,狭隘了啊
2020-06-25 02:08:57 +08:00
回复了 CloudRaft 创建的主题 程序员 悬赏 1200 元做一个简单的 Linux 用户资源监控系统
有很多程序员一天的工资都大于 1200
悬赏,原来也就一天工资
2020-06-19 20:17:47 +08:00
回复了 poppy37 创建的主题 生活 负能量吐槽向,毕业五年差距显现,突然觉得人生而不平等
我一初中同学的朋友圈,跑车、旅游,你能怎么办呢
2020-06-19 09:23:55 +08:00
回复了 ileeoyo 创建的主题 程序员 https 加密的问题
你这是在 connect 连代理,练完之后传输的才是被 http over tls 的东西,也就是一串乱码

要理解这个东西,你去搜下 http connect 方法就行。

需要自成体系的学习,咋遇到个问题上 V2EX 呢
2020-06-19 00:33:01 +08:00
回复了 freshgoose 创建的主题 分享发现 个人保健方法:眼睛 和 睡眠
眼睛本身是没有痛觉神经的
2020-06-16 22:25:49 +08:00
回复了 FireCat 创建的主题 Java Java 构造函数不要放业务逻辑?
说一个我觉得吧

不要在构造函数内暴露 this

如果你在构造函数内写逻辑,你就可能暴露 this
2020-06-14 11:28:59 +08:00
回复了 ChuangChang 创建的主题 电影 推荐台湾电影《阳光普照》
菜头太孤独了
2020-06-13 12:02:39 +08:00
回复了 JCZ2MkKb5S8ZX9pq 创建的主题 程序员 才知道 Foobar 是这意思
foobar 肯定是马爸爸说的福报啊
2020-06-08 14:47:24 +08:00
回复了 SONIC1987 创建的主题 程序员 关于 996 和人生的思考
@Leonard 离职手续不办了吗
2020-06-08 11:38:00 +08:00
回复了 Aruforce 创建的主题 程序员 NIO 如下代码怎么绕过死锁?还是说我写的不对?如下代码
@Aruforce 这代码我运行了下,用 nc localhost 8090 测试了下,没有问题啊

你说的空转是什么意思?

不要总是感觉有问题,永远没有最优解,都是权衡和妥协。最怕你觉得这样有问题,然后就什么都不做。

优化是后面的事。

另外,说真的,就是这样了,不要觉得有啥问题。真可以增加的就是线程池了
2020-06-05 14:39:44 +08:00
回复了 Aruforce 创建的主题 程序员 NIO 如下代码怎么绕过死锁?还是说我写的不对?如下代码
@Aruforce 看错了,没看到你用了两个 selector 。

你现在问题是线程 1 register 、线程 2 select,死锁了。解决很简单,用个生产者消费者模型,把要 register 的 channel 放到队列中,线程二在每次 select 前先 register 队列中的 channel 。这时候你可能又要问了,万一线程 2 一直阻塞在 select 时,怎么办? 答案:用 selectNow()或 select ( timeout )。


刚刚看了 netty 源码中怎么进行 register 的,他也是生产者消费者模型,由进行 select 的线程来 register 。代码如下:

AbstractChannel.java (Netty 4.1):

@Override
public final void register(EventLoop eventLoop, final ChannelPromise promise) {
ObjectUtil.checkNotNull(eventLoop, "eventLoop");
if (isRegistered()) {
promise.setFailure(new IllegalStateException("registered to an event loop already"));
return;
}
if (!isCompatible(eventLoop)) {
promise.setFailure(
new IllegalStateException("incompatible event loop type: " + eventLoop.getClass().getName()));
return;
}

AbstractChannel.this.eventLoop = eventLoop;

if (eventLoop.inEventLoop()) {
register0(promise); // 这里不会走到
} else {
try {
// eventLoop 就是 netty 中线程,提交一个 register 任务,后面会被执行
eventLoop.execute(new Runnable() {
@Override
public void run() {
register0(promise);
}
});
} catch (Throwable t) {
logger.warn(
"Force-closing a channel whose registration task was not accepted by an event loop: {}",
AbstractChannel.this, t);
closeForcibly();
closeFuture.setClosed();
safeSetFailure(promise, t);
}
}
}
2020-06-04 21:56:56 +08:00
回复了 Aruforce 创建的主题 程序员 NIO 如下代码怎么绕过死锁?还是说我写的不对?如下代码
问题确实是 select 和 register 都要获取同样的锁。

你现在是启动两个线程,一个 select-accept-register,另一个 select-read/write 。除了锁的问题哈,还有你会丢失 accept 和读写事件,线程 1 会忽略读写,线程 2 会忽略 accept 。

楼主知道 reactor 模式吗?一个线程负责接收事件( accept 、read 、write ),后面一个线程池负责处理这些事件。

应该长这样:一个线程 select-accept/read/write->由线程池来处理不同事件( accept 可以直接在原线程进行 register )

PS:实践到这里差不多了,可以看 netty 了。先用用 netty,然后看下 netty 源码,相信就能清楚。
2020-06-04 10:54:38 +08:00
回复了 fangcan 创建的主题 奇思妙想 有没有拼单的网站?
我想做,并且搭了一个论坛,可以没人发帖

https://bbs.arloor.com
@fxxkgw 大佬跳槽的话想做什么啊
2020-06-03 15:52:34 +08:00
回复了 rqxiao 创建的主题 Elasticsearch elasticsearch 中复杂查询的问题
看下官方文档中 date 和 date_range 这两个数据类型,相信就能解决
2020-06-01 22:54:42 +08:00
回复了 gzh 创建的主题 求职 大家帮忙看看 Java 简历,为什么总是石沉大海.😥
应届生这也差了点才对。。
@xishifendou 开个玩笑,已有下家
比较缺人就是缺两人
大量 hc 就是三个人
我懂了,怪不是我这么难找工作
haobin 牛逼
2020-05-15 11:30:49 +08:00
回复了 forestyuan 创建的主题 云计算 为什么国内有些云厂商支持 CentOS 7 却不支持 CentOS 8?
注意:是从 centos7 安装 centos8 而不是从 centos7 升级 centos8
意思是,新的系统是干净的官方的 centos8 系统,没有你老的数据,也没有云厂商的监控应用。

不需要赞成不赞成,只是说可以做到
然后需要自取,这样
1 ... 2  3  4  5  6  7  8  9  10  11 ... 14  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5511 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 06:42 · PVG 14:42 · LAX 22:42 · JFK 01:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.