传统编程模型存在的问题
发布时间:2021-03-16 14:57:12 所属栏目:外闻 来源:互联网
导读:必须通过对象提供的一系列方法来间接进行访问。对象负责公开对数据的安全操作的方法,以保护其封装的数据的不变性。 在多线程下,多个线程同时调用同一个对象的方法来修改其内部封装的数据时候,就会存在线程安全问题,这是因为封装本身不确保对象内部数据的
|
必须通过对象提供的一系列方法来间接进行访问。对象负责公开对数据的安全操作的方法,以保护其封装的数据的不变性。 在多线程下,多个线程同时调用同一个对象的方法来修改其内部封装的数据时候,就会存在线程安全问题,这是因为封装本身不确保对象内部数据的一致性,在不对对象的方法在修改数据施加一定同步措施时,对象内的数据就会在多线程访问下变得不确定了。 一个解决该问题的方式就是,多线程访问对象方法内数据时候施加一定同步措施,比如加锁,加锁可以保证同时只有一个线程可以访问对象内的数据,但是加锁会带来昂贵的代价:
由于以上问题的存在,导致我们进退两难:
另外,锁只能在单JVM内(本地锁)很好的工作。当涉及到跨多台机协调时,只能使用分布式锁。但是分布式锁的效率比本地锁低几个数量级,这是因为分布式锁协议需要跨多台机在网络上进行多次往返通信,所以其造成较大的影响就是延迟。 小结:
(编辑:衡水站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |



