楼主: 小屁猪

Java的Future机制详解

[复制链接]

5

主题

13

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2023-3-10 16:45:49 | 显示全部楼层
我是这么想的,volatile 的 可见性是体现多个线程之间对 volatile 变量的值的更新 可见。
outcome 的 设值和取值都被 state 保护了(顺序性),一个任务执行成功后的设值(产生执行结果)只是发生过一次,取值操作会被因为 state值不满足取值条件而阻塞要取值的线程,这些线程进入等待,等待任务执行完成后的unpark ,之前等待的线程就可以进行取值了。
不会影响到 outcome 在多个取值线程中不一致。
回复

使用道具 举报

0

主题

5

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-10 16:46:05 | 显示全部楼层
生成input1线程休眠3秒  生成input2线程休眠2秒
回复

使用道具 举报

2

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-3-10 16:46:44 | 显示全部楼层
[赞]
回复

使用道具 举报

1

主题

5

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-3-10 16:47:28 | 显示全部楼层
我是房东
欢呼
回复

使用道具 举报

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-3-10 16:48:17 | 显示全部楼层
[捂脸]这。。。
回复

使用道具 举报

4

主题

10

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-3-10 16:48:50 | 显示全部楼层
[谢邀]
回复

使用道具 举报

3

主题

9

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-3-10 16:49:34 | 显示全部楼层
jdk15中以及没有cas的那一段代码了 好像被一个什么锁相关的代替了
回复

使用道具 举报

2

主题

11

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2023-3-10 16:50:10 | 显示全部楼层
不是很理解。两个子线程不是同时休眠的吗?[好奇]
回复

使用道具 举报

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-3-10 16:50:23 | 显示全部楼层
不懂3+2哪来的
回复

使用道具 举报

4

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2023-3-10 16:50:53 | 显示全部楼层
运行一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表