V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  amiwrong123  ›  全部回复第 32 页 / 共 47 页
回复总数  932
1 ... 28  29  30  31  32  33  34  35  36  37 ... 47  
❮ ❯
2020 年 9 月 6 日
回复了 RedBeanIce 创建的主题 › Java › CompletableFuture 使用交流(其实是困解)
个人怀疑,是不是 ForkJoinPool#commonPool()的坑,难道是在 supplyAsync 内部提交 task 给 commonPool 的时候执行了什么奇怪的拒绝策略。

建议使用 supplyAsync(Supplier<U> supplier, Executor executor),自己给一个线程池,排除一下线程池的原因。
2020 年 9 月 5 日
回复了 amiwrong123 创建的主题 › MySQL › mysql 必知必会的多表联结问题?
@qiayue 忘 @了
2020 年 9 月 5 日
回复了 amiwrong123 创建的主题 › MySQL › mysql 必知必会的多表联结问题?
其实我是根据书中前面内容瞎改了下,用 explain 看了下,我这么改好像更不好了。本来以为先用子查询查出订单 20005 里的产品 id 会更好呢。

第一个图是第一个查询的。

<img src="https://s1.ax1x.com/2020/09/05/wZSgx0.png" alt="1599316644(1)" border="0">

第二个图是第二个查询的。

<img src="https://s1.ax1x.com/2020/09/05/wZSHR1.png" alt="1599316719(1)" border="0">

而且还报了个警告。。
2020 年 8 月 24 日
回复了 amiwrong123 创建的主题 › Java › CompletableFuture 的 thenCompose 感觉有点理解不能啊
感觉 thenCompose 很像 thenApplyAsync,但又不是。

而且 thenComposeAsync 就更难理解了。
@passerbytiny
好吧,大概理解了。主要之前我以为我这个例子,applyAsync 和 thenApplyAsync 的执行线程肯定是同一个线程,但从源码上看发现 前一个线程只是提交任务给 Executor 而已。

所以,applyAsync 和 thenApplyAsync 的执行线程不一定是同一个呗。只是这个例子里,线程池是这样调度的。
@zyoo
多试几次也一样。我怀疑这跟 ForkJoinPool.commonPool()的线程调度有关系,但我现在还没来得及看它的原理呢。。
@passerbytiny
没说不可以,它们之间肯定是串行的,但不一定是同一个线程吧。从源码上可见,supplyAsync 的线程并不是直接执行下一个 task 的,因为它 e.execute(this)之后就马上返回了。
2020 年 8 月 17 日
回复了 amiwrong123 创建的主题 › Java › FutureTask 里使用普通语义而不是 CAS 写的原因是?
@BBCCBB
volatile 变量的修改可以立刻让所有的线程可见,这个确实很好理解,对于同一个字段来说。

但其实,对 A 字段的 CAS 写操作,可以让其他所有字段的普通写操作,也马上可见。我这么理解对不
2020 年 8 月 4 日
回复了 amiwrong123 创建的主题 › Java › PriorityBlockingQueue 的构造器好奇怪啊?
@mind3x
大佬,还想问个问题:
就是你 1 楼给的泛型函数里,
为什么一定要声明 Comparable<? super T> key = (Comparable<? super T>) x;
我觉得声明成 Comparable<T> key = (Comparable<T>) x;就完全可以了啊,完全不理解为啥这样。

因为 key.compareTo((T) e)比较时,也是和确定的 T 类型进行比较的啊。
2020 年 8 月 4 日
回复了 amiwrong123 创建的主题 › Java › PriorityBlockingQueue 的构造器好奇怪啊?
@mind3x
谢谢回复

原来如此,大概就是:
Integer[] array = new Integer[5];
Comparable<?> aa = (Comparable<?>)(new Integer(1));
array[4] = aa;//编译报错

我也很好奇为什么不把 array[k]=key 改成 array[k] = x,这样构造器里面就不用转换数组类型了嘛

PriorityBlockingQueue<E>的声明,你不提醒我,我都没注意到这一点。
2020 年 8 月 2 日
回复了 amiwrong123 创建的主题 › 程序员 › 如何打印一个基于数组的完全二叉树
@fuxiuyin
@msg7086

哈哈,我想到怎么实现了。大概就是这样 https://blog.csdn.net/anlian523/article/details/107732532
幸亏 @fuxiuyin 老哥提醒了我,数字和数字之间三个空格,我就直接让最后一层(也就是宽度最宽的那一层)的数字之间都间隔三个空格。
2020 年 8 月 1 日
回复了 amiwrong123 创建的主题 › 程序员 › 如何打印一个基于数组的完全二叉树
@fuxiuyin
我现在先考虑数字都是一位数的,能实现就行,两位数的话再优化😂
2020 年 8 月 1 日
回复了 amiwrong123 创建的主题 › 程序员 › 如何打印一个基于数组的完全二叉树
@msg7086
思路确实有问题,不过我感觉吐空格不是那么简单,层数一多起来( 5,6 层)的时候,各个层数字之间的空格可能都不一样。有点费脑细胞了。。
2020 年 7 月 30 日
回复了 amiwrong123 创建的主题 › Java › 如何比较清楚得解释这几个阻塞队列使用的 lock 的数量
@wysnylc
什么,这是个什么梗么
@mythabc
搜了下这个牌子,你的也是那种后面有跟绳的呗
2020 年 7 月 25 日
回复了 amiwrong123 创建的主题 › Java › ConcurrentLinkedQueue 的内存一致性是如何保证的?
@falsemask
node 的 next 指针是 volatile 的,要想入队,就得 CAS 修改 last node 的 next 指针。只有修改成功了,别的线程才能从队列出发找到这个新 node,才可能对它进行访问或删除。

所以重点在于 node 的 next 指针是 volatile 的呗
2020 年 7 月 25 日
回复了 amiwrong123 创建的主题 › Java › ConcurrentLinkedQueue 的内存一致性是如何保证的?
@secondwtq
看来我的英文水平有待提高,确实应该你这个意思。之前完全理解错了。。网络上各个博客关于这句话,居然还都是我这么翻译的。。
2020 年 7 月 21 日
回复了 amiwrong123 创建的主题 › Java › 我现在连个三目表达式都看不懂了…
@yamasa
嗯,好像是。尤其是无锁编程 lock free 实现的那几个类(比如那个 concurrent 跳表),不看注释根本看不懂啊
2020 年 7 月 21 日
回复了 amiwrong123 创建的主题 › Java › 我现在连个三目表达式都看不懂了…
@vansouth
本帖的主题可能要变成 简洁性 和 可读性 的争辩了。
1 ... 28  29  30  31  32  33  34  35  36  37 ... 47  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1368 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 23:24 · PVG 07:24 · LAX 15:24 · JFK 18:24
♥ Do have faith in what you're doing.