java热点话题

发布时间:2024年01月19日

1? 线程同步有策略类 :

(1)?synchronized?

通过在代码块或方法上加上?synchronized?关键字,可以实现对代码块或方法的同步访问。当一个线程获取到了对象的锁资源,其他线程就无法进入该代码块或方法,只能等待锁资源的释放

(2)?ReentrantLock

它是显示锁的一种实现,提供了可重入的锁机制,与?synchronized?关键字相比,ReentrantLock?提供了更高的灵活性和额外的功能,例如设置等待时间、中断等待、公平性

补充: Condition?类:与?ReentrantLock?类一起使用,通过创建多个?Condition?对象,可以实现更加精细化的线程等待和唤醒机制

(3)?Semaphore

通过设置信号量的数量,可以控制同时访问某个资源的线程数量

(4)?CountDownLatch

通过设置计数器的值,可以控制某个任务等待其他一组任务完成后再执行

(5)?CyclicBarrier

通过设置参与线程数量,当所有线程都达到栅栏点后,所有线程会被释放,并继续执行

2?CAP 理论和 Base 理论

(1) cap理论:?

一致性:?在分布式系统中的多个副本或节点之间,保持数据的一致性。也就是说,如果有多个客户端并发地读取数据,在任何时间点上,它们都应该能够观察到相同的数据

可用性:在分布式系统中的多个副本或节点之间,保持数据的一致性。也就是说,如果有多个客户端并发地读取数据,在任何时间点上,它们都应该能够观察到相同的数据

分区容错:?指系统在遇到网络分区或节点失效的情况下,仍能够继续工作并保持数据的一致性和可用性

结论: 在分布式系统中,不能同时满足一致性、可用性和分区容错性这三个特性,只能是?CP?或者是?AP

  • CP:强一致性和分区容错性设计。这样的系统要求保持数据的一致性,并能够容忍分区故障,但可用性较低,例如在分区故障期间无法提供服务。

  • AP:高可用性和分区容错性设计。这样的系统追求高可用性,而对一致性的要求较低。在分区故障期间,它可以继续提供服务,但数据可能会出现部分不一致。

(2)?BASE?理论:

BASE?理论是对分布式系统中数据的一致性和可用性进行权衡的原则,它是对?CAP?理论的一种补充

基本可用性:系统保证在出现故障或异常情况下依然能够正常对外提供服务,尽管可能会有一定的性能损失或功能缺失。在分布式系统中,为了保证系统的可用性,有时会牺牲一致性。

软状态:系统中的数据的状态并不是强一致的,而是柔性的。在分布式系统中,由于网络延迟、节点故障等因素,数据可能存在一段时间的不一致。

最终一致性:系统会保证在一段时间内对数据的访问最终会达到一致的状态。即系统允许数据副本在一段时间内存在不一致的状态,但最终会在某个时间点达到一致。

文章来源:https://blog.csdn.net/weixin_45874214/article/details/135691171
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。