从构建分布式秒杀系统聊聊为什么不用synchronized

前言技术没有高低之分,适合自己的就是最好的。只有努力扩展自己的知识边界,才能探索更多未知领域。案例在分析为什么不用synchronized这个问题之前,我们先用代码说话,LockDemo测试案例:/***案例测试*@author*/publicclassLockDemo{privatestaticLocklock=newReentrantLock();privatestaticintnum1=0;
分类: 编程语言 发布时间: 10-16 22:00 阅读次数: 0

Intel Realsense D435 在ROS:Kinetic + Ubuntu16.04中安装使用

Intel Realsense D435是Intel生产的一款RGBD相机,可以在ROS系统中安装和使用,本文使用的软件配置如下: Ubuntu 16.04 内核版本:4.15.0 ROS kinetic 1. 前期准备 a.  首先更新Ubuntu及内核: sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade b.  升级程序包 sudo apt-get install --install-rec
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

阿达萨达sad

目录 解析模块 为什么要配置解析模块 源码 标题一 标题二 标题三 异常模块 为什么要自定义异常模块 源码分析 响应模块 序列化模块 序列化组件的使用 反序列化组件的使用 解析模块 为什么要配置解析模块 """ 1)drf 给我们提供了多种解析数据包方式的解析类 2)我们可以通过配置 来控制前台提交那些格式的数据,哪些在后台解析,哪些不解析 3)全局配置(settings.py)就是针对每一个视图类,局部配置(类属性)就是针对指定的视图来,让它们可以按照配置规则选择性解析数据 """ 源码 入
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

HNOI2018转盘

题意: 给一个大小为 \(n\) 的环,每个点拥有一个出现时间 \(t_i\),你初始可以选定任何一个点作为起点,然后每一时刻你可以向下走一格或停留在原地,若当前时间\(\rm{T}\ge\) \(t_i\)则你可以标记其,问标记所有点最少耗时\(\rm T\),支持修改。 \(\rm Sol:\) 考虑转化题意,反向考虑,假设当前在某一个位置\(x\)且时间为\(\rm T\),每一时刻你可以向前走一步或者停留在原地,然后时间\(\rm T-1\),每个点在时间比\(t_i\)小的时候便会消
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

Flask快速入门(12) — local与偏函数

目录 不用threading.local 使用threading.local 通过字典自定义threading.local(函数) 面向对象版 通过setattr和getattr实现 每个对象有自己的存储空间(字典) 兼容线程和协程(源码到request中去看,看local的__getattr__,setattr) partial偏函数 多个线程修改同一个数据,复制多份变量给每个线程用,比如我们用的request,怎样让不同的请求有自己的request。就是为每个线程开辟一块空间进行数据存储
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

python模块常用用法

1、time模块(※※※※) import time #导入时间模块 print(time.time()) #返回当前时间的时间戳,可用于计算程序运行时间 print(time.localtime()) #返回当地时间的结构化时间格式,参数默认为时间戳 print(time.gmtime) #返回UTC时间的结构化时间格式 print(time.mktime(time.localtime())) #将结构化时间转换为时间戳 print(time.strftime("%Y-%m-%
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

结对编程(python实现)

一、Github项目地址:https://github.com/asswecanfat/git_place/tree/master/oper_make 二、PSP2.1表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 150 150 · Estimate · 估计这个任务需要多少时间 150 150 Development 开发 1340 1720 · Analysis · 需求分析 50 60
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

【并发那些事 】创建线程的三种方式

创建线程可以说是并发知识中最基础的操作了,JDK 提供的创建线程的方式,如果不包括通过线程池的话,目前有三种形式,它们分别是通过继承 Thread 类,通过实现 Runable 接口,通过 FutureTask。如下图所示 下面整理了一下 3 种方法的具体使用与异同。 创建线程的 3 种方法 1. 继承 Thread 创建一个类继承 Thread 并覆盖 run 方法 class MyThread extends Thread { @Override public void r
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

调用第三方https接口

1. package com.huawei.irs.common.domain; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

CITRIX ADC配置SSL卸载

如上图,将ssl的加密解密放在前端的负载均衡设备上,客户端到VPX的访问都是加密的,VPX到后端的服务器都是http的 Step1:上传证书到VPX,如下图: Step2:创建SSL的虚拟服务器并且绑定证书,如下图: Step3:在测试终端上通过https://10.10.1.210访问如下图:
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

【译】送给你的代码审查问题手册

快来领取这份代码审查问题手册! 代码审查列表,是代码审查的明确规则和指导手册,它可以使代码审查为你的团队带来更多好处,并且能够显著提升代码审查的速度。 研究表明,使用代码审查列表的审阅者的表现要优于不使用的审阅者。所以不管你是新手开发者还是经验丰富的开发者,开始考虑使用代码审查列表吧。 代码作者应该关注的列表 作为代码的作者,你应该保证: 代码编译成功并且通过静态检查(没有警告) 代码通过所有的测试(单元测试、集成测试和系统测试) 你已经仔细检查了拼写错误,并做了处理(注释、todo等) 概述
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

第八周课程报告&&实验报告六

Java实验报告 班级 计科二班 学号 20188450 姓名 李代传 完成时间 2019.10.16 评分等级 实验四 类的继承 实验目的 理解异常的基本概念; 掌握异常处理方法及熟悉常见异常的捕获方法。 实验要求 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。 掌握自定义异常类的方法。 实验内容 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

裴逸洋-2019-10-16-计算机专业英语作业

1 计算机,俗称电脑,是现代一种用于高速计算的电子计算器,可以进行数值计算,也可以进行逻辑计算,还有储存记忆功能。是能按照程序自动、高速的处理海量数据的现代智能现代化电子设备一种数制。 2 二进制:二进制是计算机技术中泛采用的。19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考转化为“0”“1”的某种代数演算,进制是逢2进位的进位制,“0”“1”是基本算数符,“0”“1”两个数字符号,非常简单方便,易于用电子方式实现。 3 计算机硬件的组成: 运算器:负责算数运算和逻辑运算。 控制器:负责发送和接
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

结对编程 (java 实现)

项目 github 地址:https://github.com/Rookie-zheng/Myapp/ psp: PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 30 · Estimate · 估计这个任务需要多少时间 30 30 Development 开发 1600 1440 · Analysis · 需求分析 (包括学习新技术) 100 90 · Design Spec · 生成设计文档 3
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

Unity网格编程(一)

using System.Collections; using System.Collections.Generic; using UnityEngine; //网格创建差不多分这几步: 1,确认顶点 2,确认顶点顺序 3,确认法线,uv... public class MeshStudy : MonoBehaviour { public float sideLength = 2; public float angleDegree = 100;
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

什么是面向对像?

什么是面向对象? 这可能是每一个初次Java语言的人都会疑惑的问题; 面向对象和面向过程是相辅相成的; 面向对象编程就是 把具有 共性 的事务 抽象 成 属性和方法 来进行代码编程. 而对一个具体的方法,其代码块里还是要使用面向过程的思想;
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

day70_10_16drf组件响应模块,异常模块和序列化模块。

一。解析模块   为什么要配置解析模块?   1)drf给我们通过了多种解析数据包方式的解析类。   2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些数据不解析。   3)全局配置就是针对每一个视图类,局部配置就是针对指定的视图来,让它们可以按照配置规则选择性解析数据。   源码入口 # APIView类的dispatch方法中 request = self.initialize_request(request, *args, **kwargs) # 点进去 ​ #
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

中间件2

中间件 middleware 中间件的五个方法 中间件可以定义五个方法,分别是:(主要的是process_request和process_response) process_request(self,request) process_view(self, request, view_func, view_args, view_kwargs) process_template_response(self,request,response) process_exception(self, req
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

剑指offer——38二叉搜索树与双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 题解:      在搜索二义树中,左子节点的值总是小于父节点的值,右子节点的值总是大于父节点的值。   因此,将二叉搜索树转换成排序双向链表时,     原先指向左子节点的指针调整为链表中指向前一个节点的指针,     原先指向右子节点的指针调整为链表中指向后一个节点的指针。    1 class Solution { 2 public: 3 Tree
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0

Linux中$()和${}区别

$( )中放的是命令,相当于` `,例如todaydate=$(date +%Y%m%d)意思是执行date命令,返回执行结果给变量todaydate,也可以写为todaydate=`date +%Y%m%d`; ${ }中放的是变量,例如echo ${PATH}取PATH变量的值并打印,也可以不加括号比如$PATH
分类: 其他 发布时间: 10-16 21:50 阅读次数: 0