请问一下大家, Java 中动态代理是线程安全的吗?

2018-08-24 09:04:47 +08:00
 neptuno
2864 次点击
所在节点    Java
17 条回复
neptuno
2018-08-24 09:05:37 +08:00
初学没多久,想问一下大家,java 中动态代理是线程安全的吗?
neptuno
2018-08-24 09:06:08 +08:00
还是说我对线程安全有什么误解
hduwillsky
2018-08-24 09:07:22 +08:00
先要弄清是什么,再问为什么
codechaser
2018-08-24 09:07:26 +08:00
@xumincheng123 得看什么处理
neptuno
2018-08-24 09:13:14 +08:00
@hduwillsky 所以动态代理线程安全吗
neptuno
2018-08-24 09:15:26 +08:00
@codechaser 比如说里面获取代理类 class 的时候,获取字节码
BBCCBB
2018-08-24 09:16:05 +08:00
你对线程安全有误解.. 动态代理只是生成一个代理类而已, 和代理模式一样的道理, 线程安全和是不是动态代理没啥关系
neptuno
2018-08-24 09:17:52 +08:00
@BBCCBB 好的👌谢谢,看了下源码,获取代理类的时候,是对 cache 进行了同步的
CoderEQ
2018-08-24 09:21:35 +08:00
你找你同学替你去买早饭,如果你说:你们谁帮我去买个早饭?然后没啥限制,导致有俩同学都买来了早饭。那就是不安全的。如果你说:你们谁帮我去买早饭,买一份就行了,然后大家举手,然后你点名说,张三就你去吧。然后你就只会买到一份早饭。嗯,不知道我的理解有没有问题,仅供参考
neptuno
2018-08-24 09:28:05 +08:00
@CoderEQ 谢谢你,这个是我懂的,可能我提问没说清楚,我的意思是获取代理对象的时候会不会有多个对象,刚才看了下源码,发现获取代理类的时候是对 cache 进行同步的
ClutchBear
2018-08-24 09:32:49 +08:00
是不是线程安全根本在于
多个线程是不是对同一个数据进行写操作.
如果没有, 就永远不会有线程安全的问题.
neptuno
2018-08-24 09:38:06 +08:00
@ClutchBear 好的,我明白了,谢谢哈
deming
2018-08-24 09:40:23 +08:00
动态代理可以理解为是一种模式,一种编程的手段和方式,作用就是生产代理对象,完成某些额外功能。

线程安全,则是另外一个概念。线程安全跟是否有“共享资源”,是否有多线程访问“共享资源”有关系。
neptuno
2018-08-24 09:42:11 +08:00
@deming 谢谢,受益匪浅
hduwillsky
2018-08-24 10:08:50 +08:00
@neptuno 楼上各位大佬已经帮你弄清楚了。
neptuno
2018-08-24 10:26:21 +08:00
@hduwillsky 好的,谢谢,麻烦你了
hduwillsky
2018-08-24 11:31:17 +08:00
@neptuno 不客气,李时珍的皮

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/482732

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX