用户中心USER CENTER

首页/用户
  • Java中的读写锁

    摘要:如果这时其中一个等待读锁的线程被方法唤醒,但因为此时仍有请求写锁的线程存在,所以被唤醒的线程会再次进入阻塞状态。想要允许这样的操作,要求这个线程是唯一一个拥有读锁的线程。 假设你的程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不...

    Alan 发布于Java
  • Java基础回顾之ThreadLocal源碼分析

    摘要:节选源码中比较重要的方法进行分析,如下可以看到,数据结构就是每个线程都有一个类型的变量来维护线程内的所有实例。 节选jdk源码中比较重要的方法进行分析,如下: public class ThreadLocal { private final int threadLocalHashCode = nextHashCode(); private static Ato...

    Alan 发布于Java
  • MySQL乐观锁在分布式场景下的实践

    摘要:那我们如何来实现乐观锁呢一般采用以下方式使用版本号机制来实现,这是乐观锁最常用的实现方式。从输出的结果可以看出用户的减库存操作成功了,商品库存成功减去而用户提交减库存操作时,数据版本号已经改变,所以数据变更失败。 MySQL乐观锁在分布式场景下的实践 背景 在电商购物的场景下,当我们点击购物时,后端服务就会对相应的商品进行减库存操作。在单实例部署的情况,我们可以简单地使用JVM提供的锁...

    Alan 发布于Java
  • margin

    摘要:二负一个没有设定高度的块状元素,其高度是自动的,具体来说就是由它里面的文档流最后的位置决定的。为负值,会导致元素的边界收缩,其作用只会影响文档流的边界。而文档流边界的减少,会产生以下两个影响。 一、margin移动的参考基线 showImg(https://segmentfault.com/img/bVE5Pz?w=557&h=497); 上图解析: showImg(https://s...

    Alan 发布于Html
  • 从零开始搭建论坛(三):Flask框架简单介绍

    摘要:我们的论坛项目就使用了该框架。此外,麦子学院也有一个入门视频教程,一共小时的视频教程,涵盖开发的方方面面,包括环境的搭建,语法介绍,项目结构的组织,全球化,单元测试等内容。博客地址更多阅读的机制三个框架的对比 前面两篇文章中我们已经了解 Web(HTTP)服务器,Web应用程序,Web框架,WSGI这些 Python Web 开发中的概念。我们知道,Web框架通过将不同Web应用程序中...

    Alan 发布于Python
<