V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  chanlk  ›  全部回复第 9 页 / 共 16 页
回复总数  305
1  2  3  4  5  6  7  8  9  10 ... 16  
2022-11-24 18:20:29 +08:00
回复了 vigack 创建的主题 分享发现 通过视频标题分析国人 xp
唐卡来张高清大图啊 ( ̄▽ ̄)/
2022-11-04 16:38:17 +08:00
回复了 dingdangnao 创建的主题 分享发现 有什么好用的汇率查询 API?
https://www.juhe.cn/docs/api/id/80

试下这个,我这边统计报表用的这个
2022-10-26 17:19:16 +08:00
回复了 yeh 创建的主题 Apple 智能家居方面, apple 的 matter 支持了个啥?
@chanlk 额,看错了,没勾选 matter 。现在确实还没有几个终端接入,只有苹果的几个 OS 和三星、LG 的平台接入了
2022-10-26 17:05:30 +08:00
回复了 yeh 创建的主题 Apple 智能家居方面, apple 的 matter 支持了个啥?
https://csa-iot.org/csa-iot_products/ 这些都是接入了 matter 的产品吗?已经有那么多了吗?
有些认证时间居然是 2018 年,没搞懂什么情况。
2022-09-08 15:18:23 +08:00
回复了 Pogbag 创建的主题 Apple AirPods Pro2 是本次发布会最想购买产品
@chanlk 笔误;低电量
2022-09-08 15:14:59 +08:00
回复了 Pogbag 创建的主题 Apple AirPods Pro2 是本次发布会最想购买产品
低音量告警去掉了吗!我都要聋了!
2022-08-03 09:50:54 +08:00
回复了 chanlk 创建的主题 程序员 有对接过 worldpay 支付经验的朋友吗?
@usbusbc 相反啦,不是想背刺,是觉得我们商户权利好大啊,能存储用户的交易凭证,扣款时间也是我们定的
2022-08-02 09:37:37 +08:00
回复了 blackbookbj277 创建的主题 iPad 64G 的返校季 iPad air 值得买么?
耳机出了折算下来是多少钱啊 @blackbookbj277
2022-07-21 09:36:35 +08:00
回复了 ackmanfork 创建的主题 问与答 请教大佬,公司内部知识库框架有没有推荐的
试试飞书文档
2022-06-24 13:58:13 +08:00
回复了 idragonet 创建的主题 深圳 深圳住房公积金不能申请异地房产还贷?
提取?提取的话想干嘛就干嘛啊
2022-06-15 16:04:59 +08:00
回复了 chanlk 创建的主题 全球工单系统 华为云 OBS 难用死了
@bootvue 后面没用 sdk 了,看着 sample http 调用写的,各种手动拼凑各种奇怪格式的请求头,磕磕绊绊,太难了
2022-06-13 11:08:19 +08:00
回复了 ecloud 创建的主题 Nintendo Switch 我是否真的需要买台 NS?
塞尔达出了 DLC 捆绑的卡带,国行可以玩;
不过,别买国行 别买国行 别买国行
2022-05-23 18:20:30 +08:00
回复了 chanlk 创建的主题 Apple AppStore 下载不可用/极慢
@JimmyLX IPhone12 移动 4G 5G 都不行,打开 bilibili 微信 qq 音乐都没问题
2022-05-23 16:23:56 +08:00
回复了 chanlk 创建的主题 Apple AppStore 下载不可用/极慢
开了个 VPN 就快了 但是我的又不是美区 ID 凌乱了
2022-05-10 14:22:14 +08:00
回复了 chanlk 创建的主题 Java Java Happens-before 的疑问
@az467 @nlzy @documentzhangx66

关于第二个问题:结论是对的,是我弄错了,sorry ;
我前面说能复现的代码是错的,代码如下:

class Scratch {

int a = 0;
boolean flag = false;

public static void main(String[] args) {

final Scratch scratch = new Scratch();
new Thread(() -> {
while (true) {
scratch.reader();
}
}).start();

new Thread(() -> {
while (true) {
scratch.writer();
}
}).start();
}

public void writer() {
flag = false;
a = 41;
a = 42;
flag = true;
}

public void reader() {
if (flag) {
if (a != 42) {
System.out.println("error!");
}
}
}
}

这里我搞错了,这里能打印出 a!=42 明显是线程切换导致的, 不能画蛇添足在上面再次为 a 赋值的。

一个值得提醒的现象:
示例代码中即使把 flag 的 volatile 去掉,a 的值也无法复现出 0 的情况(jdk7/jdk8 均不行),查资料说 x86cpu 不支持写重排序,x86cpu 的市场占有率那么高,所以大部分同学都无法复现,mac m1 的同学可以试试能不能复现

我的想法和 documentzhangx66 同学的是一样的,但是 volatile 的能力其实很强的,az467 发的那个文章写的很清楚了

最后,个人愚见,如 volatile 那么底层的工具,没有特殊的需求还是尽量少用,用更加上层的工具在开发和后续的维护上都更合适些
2022-05-08 12:26:50 +08:00
回复了 chanlk 创建的主题 Java Java Happens-before 的疑问
@documentzhangx66 @nlzy 感谢回答~
问题一那个应该是伪代码哈, 然后是先做了 Happens-before 的假设再说行为, 是对的;
问题二那个确实是错的,我直接跑了下代码,确实会出现 flag==true 的时候 a!=42 的情况
2022-05-07 17:39:09 +08:00
回复了 chanlk 创建的主题 Java Java Happens-before 的疑问
@alen0206 截图 2 的那个 reader 中当 flag==true 的时候,i 不一定是 42 吧; writer 中代码是可以重排序的,a 也没有保证写入 42 后能够立刻被另一个线程可见
1  2  3  4  5  6  7  8  9  10 ... 16  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2752 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 14:10 · PVG 22:10 · LAX 06:10 · JFK 09:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.