分布式基础
CAP 定理
CAP 定理指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。在分布式系统中,分区容错性是必须需要实现的。所以只能在一致性和可用性之间进行权衡(AP 或者 CP)。
CAP 定理指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。在分布式系统中,分区容错性是必须需要实现的。所以只能在一致性和可用性之间进行权衡(AP 或者 CP)。
写代码的时候有个地方需要把 Integer
类型强转为 String
Integer firstEventType = eventTask.getEventType1(); |
当我点开 String#valueof
这个静态方式时
public static String valueOf(Object obj) { |
当我们没有获取到 firstEventType 这个值时,为 null,此时它返回给我们的是字符串 “null” ,有时候就不符合我们的业务场景,最好是提前做空值判断。
维基百科解释:
In computing, the producer–consumer problem[1][2] (also known as the bounded-buffer problem) is a classic example of a multi-process synchronization problem. The problem describes two processes, the producer and the consumer, who share a common, fixed-size buffer used as a queue. The producer’s job is to generate data, put it into the buffer, and start again. At the same time, the consumer is consuming the data (i.e., removing it from the buffer), one piece at a time. The problem is to make sure that the producer won’t try to add data into the buffer if it’s full and that the consumer won’t try to remove data from an empty buffer.
import java.util.LinkedList; |
LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高” 。
代码:
/** |
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。
本文涉及到的知识点:
thread.join()
,object.wait()
,object.notify()
,CountdownLatch
,CyclicBarrier
,FutureTask
,Callable
等。