V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  az467  ›  全部回复第 7 页 / 共 8 页
回复总数  159
1  2  3  4  5  6  7  8  
http://www.yinwang.org/blog-cn/2012/08/01/interpreter/

跟用其他语言制作解释器一样制作,大体上没有特别之处。
甚至你想写元循环虚拟机 /解释器,以至于自举都可以。
2020-10-07 22:50:53 +08:00
回复了 lysS 创建的主题 问与答 弱弱问一下,并发加锁后是不是成单线程啦?
可以看作局部串行(单线程)
2020-10-06 17:25:13 +08:00
回复了 zxCoder 创建的主题 JavaScript 闭包为什么叫闭包
直接的关系好像没有。
不过我觉得存在第三个词,这个词跟离散上的闭包还有编程上的闭包都有关系。
2020-10-05 13:02:11 +08:00
回复了 mtmax 创建的主题 Java 关于 volatile 可见性的一个问题
> 如果注释这行, a 就读不到。

这简单,你把 JIT 关掉就行了(如果你也是 open JDK )。
估计是 JVM 直接帮你把 while ( a == 0 )替换成 while ( 0 == 0 )或者 while ( true )了。

所以说这跟可见性根本就没有关系,只跟 JVM 的具体实现有关。
2020-10-03 15:00:08 +08:00
回复了 OTTOmonkey 创建的主题 职场话题 职场 PUA 已经从面试开始了吗?
语言的腐败
2020-10-01 22:23:19 +08:00
回复了 YadongZhang 创建的主题 求职 国庆后打算回上海找工作
要价太低会被人认为有问题,反而不利于就职。
2020-09-26 21:18:21 +08:00
回复了 zhoudaiyu 创建的主题 问与答 这次过节大家公司都发什么了?
不加班通知
2020-09-11 22:33:49 +08:00
回复了 penguinhlxhands 创建的主题 问与答 工作和第二学位该怎么取舍?
双学位啊,只在校招的时候看到过,有些国企给开硕士待遇,可能在体制内有点用吧。
不如找个摸鱼工作备战考研。
怎么最近这种引流贴变多了
经济不好 大家都干起副业了么
2020-03-27 22:00:12 +08:00
回复了 kaiki 创建的主题 分享发现 你们见过哪些明显外行的技术提问?
爬虫跟蠕虫有什么区别?
2020-03-22 17:22:49 +08:00
回复了 meefly 创建的主题 分享创造 👴开发了 1️⃣🈹7️⃣🧗功能,🦡🦅🦁️用
太带派啦😂太带派啦😂太带派啦😂太带派啦😂太带派啦😂太带派啦😂太带派啦😂太带派啦😂
2020-03-22 13:17:49 +08:00
回复了 silencil 创建的主题 职场话题 培养应届生需要多大的成本? 4k+997 应不应该接受?
我觉得这就是提一个正常人不可能接受的条件让你自觉知难而退而已。

你要是真敢答应,他或许也就认了,或许还有后续手段。
2020-03-22 12:33:29 +08:00
回复了 amiwrong123 创建的主题 Java 如何理解 NIO 中 attach 以及如何正确注册 write 事件?
@amiwrong123

* Registers this channel with the given selector, returning a selection
* key.
*
* <p> An invocation of this convenience method of the form
*
* <blockquote><tt>sc.register(sel, ops)</tt></blockquote>
*
* behaves in exactly the same way as the invocation
*
* <blockquote>
<tt>sc.{@link
* #register(java.nio.channels.Selector,int,java.lang.Object)
* register}(sel, ops, null)</tt></blockquote>

还是我原来说的,你仔细看你的代码:

//sk.interestOps(sk.interestOps() | SelectionKey.OP_WRITE);
socketChannel.register(selector, SelectionKey.OP_WRITE); 👈

sk.attach(ByteBuffer.wrap(sendStr.getBytes())); 👈

注册写,attachment 置 null,然后调用了 attach(),attachment 为 sendStr 。

//sk.interestOps(sk.interestOps() & ~SelectionKey.OP_WRITE);
socketChannel.register(selector, SelectionKey.OP_READ); 👈

注册读,attachment 置空,没有调用 attach(),所以 attachment 依然为 null 。
2020-03-22 12:33:29 +08:00
回复了 amiwrong123 创建的主题 Java 如何理解 NIO 中 attach 以及如何正确注册 write 事件?
@amiwrong123

* Registers this channel with the given selector, returning a selection
* key.
*
* <p> An invocation of this convenience method of the form
*
* <blockquote><tt>sc.register(sel, ops)</tt></blockquote>
*
* behaves in exactly the same way as the invocation
*
* <blockquote>
<tt>sc.{@link
* #register(java.nio.channels.Selector,int,java.lang.Object)
* register}(sel, ops, null)</tt></blockquote>

还是我原来说的,你仔细看你的代码:

//sk.interestOps(sk.interestOps() | SelectionKey.OP_WRITE);
socketChannel.register(selector, SelectionKey.OP_WRITE); 👈

sk.attach(ByteBuffer.wrap(sendStr.getBytes())); 👈

注册写,attachment 置 null,然后调用了 attach(),attachment 为 sendStr 。

//sk.interestOps(sk.interestOps() & ~SelectionKey.OP_WRITE);
socketChannel.register(selector, SelectionKey.OP_READ); 👈

注册读,attachment 置空,没有调用 attach(),所以 attachment 依然为 null 。
2020-03-22 12:08:01 +08:00
回复了 amiwrong123 创建的主题 Java 如何理解 NIO 中 attach 以及如何正确注册 write 事件?
@amiwrong123

你可以认为

socketChannel.register(selector, SelectionKey.OP_READ);

其实就是

socketChannel.register(selector, SelectionKey.OP_READ, null);

第三个参数就是 attachment
2020-03-22 11:33:37 +08:00
回复了 amiwrong123 创建的主题 Java 如何理解 NIO 中 attach 以及如何正确注册 write 事件?
读文档呀。

Selector 持有两个 Set,Keys 和 SelectedKeys,后者只是前者的子集。
每次调用 select(),会把前者中的部分添加到后者中,而不是重复注册生成新的 SelectionKey 。
register()也是一样的,如果已经在给定的 selector 注册过,那么方法只会对 interestOps 和 attachment 进行覆盖。

key.attach()会设置 key 的 attachment 字段,而一个 key 和一个 channel 绑定,所以你的理解是正确的。

socketChannel.register(selector, SelectionKey.OP_WRITE); 👈

String sendStr = "您的消息'"+sb.toString()+"'我已经收到了";

System.out.println("接下来 attach 的是:"+sendStr);

sk.attach(ByteBuffer.wrap(sendStr.getBytes())); 👈

可以看出,你调用 attach()在 register()之后,所以 attachment 不会“丢失”。
2020-03-21 21:45:12 +08:00
回复了 ifconfig 创建的主题 Redis 请教大佬们一个关于 redis 原子性的问题
返回 nil 只是说明 redis 根本没有执行此事务(命令队列)。
按照官网的说法,redis 事务中的命令要么都被执行,要么都不被执行,所以它是有原子性的。

什么?你说语法错误?语法出错了那不就是乱码吗?乱码又不是命令,无所谓执行不执行。
不支持复杂操作?那跟原子性有关系么?
没有自动回滚就不能拥有原子性,我 redis 并不认同(
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   880 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 21:18 · PVG 05:18 · LAX 14:18 · JFK 17:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.