2018年4月16日

乐观锁与悲观锁+死锁+所有锁分类

摘要: 乐观锁 VS 悲观锁 1)悲观锁:就是很悲观,每次去拿数据的时候都认为别人会修改, 所以每次在拿数据的时候都会上锁。这样别人想拿这个数据就会 block 直到它拿到锁。传统的关系型数据库就用到了很多这种机制,比如行锁,写锁等,都是在操作之前上锁。 实现:Synchronized, lock 适用于并 阅读全文

posted @ 2018-04-16 20:32 二十年后20 阅读(420) 评论(0) 推荐(0) 编辑

redis线程安全性

摘要: 总体来说快速的原因如下: 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io 阅读全文

posted @ 2018-04-16 20:21 二十年后20 阅读(385) 评论(0) 推荐(0) 编辑

同步、异步与阻塞、非阻塞

摘要: 同步阻塞,用户空间的应用程序执行一个系统调用,这意味着应用程序会一直阻塞,直到系统调用完成为止(数据传输完成或者发生错误)。 同步非阻塞,设备以非阻塞形式打开,这意味着 io 操作不会立刻完成,需要应用程序调用多次来等待完成。 同步和异步 1)同步:发出一个调用时,在没有得到结果前,该调用就不返回, 阅读全文

posted @ 2018-04-16 19:34 二十年后20 阅读(106) 评论(0) 推荐(0) 编辑

memcached和redis区别

摘要: Memcached:是高性能分布式内存缓存服务器,本质是一个内存 key-value 数据库,但不支持数据持久化,服务器关闭后,数据全丢失。只支持 key-value 结构。 Redis:将大部分数据放在内存中,支持的数据类型有:字符串、hash 表、链表、集合、有序集合以及基于这些数据类型的相关操 阅读全文

posted @ 2018-04-16 19:32 二十年后20 阅读(106) 评论(0) 推荐(0) 编辑

长连接和短连接

摘要: Tcp 保活功能,主要为服务器应用程序提供,服务器应用程序需要知道客户主机是否崩溃,从而可以代表客户使用资源. 如果一个给定的连接,在两个小时内没有任何的动作,则服务器就向客户发送一个探测报文段,客户主机可能有以下几种状态:1)客户主机依然正常运行,并从服务器可达,客户的 tcp 响应正常,而服务器 阅读全文

posted @ 2018-04-16 19:16 二十年后20 阅读(205) 评论(0) 推荐(0) 编辑

JAVA8新特性

摘要: Java8 新特性: 1)接口的默认方法,java 8 允许我们给接口添加一个非抽象方法,只需使用 default 关键字,JDK1.8之前默认是用protected修饰,但在JDK1.8之后则是默认为default修饰。 2)lambda 表达式,在 java8 之前,若想将行为传入函数,仅有的选 阅读全文

posted @ 2018-04-16 16:42 二十年后20 阅读(126) 评论(0) 推荐(0) 编辑

线程、进程与程序+并行与并发

摘要: 线程:并发性好、资源消耗少;资源管理和保护不太适合,因为资源是共享的。 进程:方便资源管理和回收;并发性不如线程,资源消耗大。 线程:cpu 调度基本单位。比进程更小的独立运行单位,同一进程中可有多个线程并发执行。 进程:cpu 分配资源基本单位。 并行:两个或多个事件,在同一时刻发生。 并发:两个 阅读全文

posted @ 2018-04-16 16:41 二十年后20 阅读(245) 评论(0) 推荐(0) 编辑

导航