Johuer's Blog

多学知识,精简代码

0%

重复消费原因

根本原因:已经消费了数据,但是offset没提交

原因1:强行kill线程,导致消费后的数据,offset没有提交

阅读全文 »

1、线程安全

并发、并行概念

并行:指两个或者多个事件在同一时刻发生 (边吃饭边打电话同一时间发生)

并发:指两个或多个事件在同一时间间隔发生(吃饭电话吃饭交替执行)

阅读全文 »

正常来说,scoket客户端打开一个输出流,如果不做约定,也不关闭它,那么服务端永远不知道客户端是否发送完消息,那么服务端会一直等待下去,直到读取超时。
所以怎么告知服务端已经发送完消息就显得特别重要。

阅读全文 »

1.volatile能够保证变量的可见性,但是并不能保证变量的原子性和有序性。

2.它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置,也不会把前面的指令排到内存屏障的后面;即在执行到内存屏障这句指令时,在它前面的操作已经全部完成;

3.它会强制将对缓存的修改操作立即写入主存;

4.如果是写操作,它会导致其他CPU中对应的缓存行无效。

阅读全文 »