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
?理论的一种补充
基本可用性:系统保证在出现故障或异常情况下依然能够正常对外提供服务,尽管可能会有一定的性能损失或功能缺失。在分布式系统中,为了保证系统的可用性,有时会牺牲一致性。
软状态:系统中的数据的状态并不是强一致的,而是柔性的。在分布式系统中,由于网络延迟、节点故障等因素,数据可能存在一段时间的不一致。
最终一致性:系统会保证在一段时间内对数据的访问最终会达到一致的状态。即系统允许数据副本在一段时间内存在不一致的状态,但最终会在某个时间点达到一致。