- 博客(30)
- 资源 (2)
- 收藏
- 关注
原创 【java】如何实现秒杀功能
秒杀的过程中【减库存,下订单,写入秒杀订单】需要具有原子性。所以要保证这三个操作是一个事物。在java中可以用@Transactional注释//保证这三个操作,减库存 下订单 写入秒杀订单是一个事物 @Transactional public OrderInfo seckill(User user, GoodsVo goods){ //减库存 goodsService.reduceStock(goods); //下订单 写入秒杀订单
2020-08-23 02:37:20
1594
原创 【Java】自动登录
本来想通过Oauth2.0来实现自动登录的。但是因为一系列原因,最后还是通过如下的方法。自定义SpringMVC参数解析器, 改变SpringMVC的Controller传入参数,实现可以User替换Token做为参数从登陆页面传到商品列表页面WebConfig.java/** * 自定参数解析器, 作用:改变SpringMVC的Controller传入参数,实现可以User替换Token做为参数从登陆页面传到商品列表页面 */@Configurationpublic class Web
2020-08-23 02:36:40
302
原创 【Java】RedisTemplate
//向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("baike", "100", 60 * 10, TimeUnit.SECONDS);//val做-1操作 stringRedisTemplate.boundValueOps("baike").increment(-1);//根据key获取缓存中的val stringRedisTemplate.opsForValue().get("baike")//val +1 str
2020-08-23 02:33:46
614
原创 【HTTP】HTTP解析
首先我们来看一下HTTP报文的结构解析请求行int process_status_line(char *start, char *end, struct http_request *httpRequest) { int size = end - start; //method char *space = strstr(start," "); assert(space != NULL); int method_size = space - start; httpRequest->met
2020-08-10 17:19:59
194
原创 【python】基于 Diffie-Hellman 的三方密钥交换算法演示
DH-demo基于 Diffie-Hellman 的三方密钥交换算法演示代码:https://github.com/Clara998/DH-demo实验环境:方法1:为了统一依赖,我们采用 Pyenv 来管理 Python 的版本,Pipenv 来管理依赖的版本。Windows 10 下安装 PyenvPipenv 的安装简明操作指南方法2:实验环境为python3.7及django3.0.6,可以自行下载算法流程:随机生成大素数p生成大素数p的一个原根gAlice,Bob,C
2020-08-10 15:17:14
2288
1
原创 【网络编程】线程池并发服务器
线程池思路threadpool_t结构体struct threadpool_t { pthread_mutex_t lock; pthread_mutex_t thread_counter; //busy_thread_num修改时加解锁 pthread_cond_t queue_not_full; pthread_cond_t queue_not_empty; pthread_t *thread; //线程数组 pthread_t adjust_t
2020-05-13 18:13:04
363
原创 【linux】线程同步
互斥锁主要应用函数pthread_mutex_init静态初始化:如果互斥锁 mutex 是静态分配的(定义在全局,或加了static关键字修饰),可以直接使用宏进行初始化。 pthead_mutex_t muetx = PTHREAD_MUTEX_INITIALIZER;动态初始化:局部变量应采用动态初始化。pthread_mutex_init(&mutex, NULL)pthread_mutex_lock函数加锁。可理解为将mutex–(或-1)int pth
2020-05-09 22:17:29
184
原创 【Linux】线程
概述相当于一个正在运行的函数线程有独立的PCB,但是多个线程共享内存最小执行单位。而进程是最小的分配资源单位创建线程相关API作用:对应进程中fork() 函数。int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);...
2020-05-08 20:47:14
191
原创 【网络编程】多路I/O转接服务器之epoll
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。相关API创建一个epoll句柄,参数size用来告诉内核监听的文件描述符的个数,跟内存大小有关。此步骤创建一个建议大小为size的红黑树(二叉平衡树),返回值为根结点的fd #include <sys/epoll.h> int epoll_create(int size) si...
2020-04-28 21:44:25
234
1
原创 【网络编程】多路I/O转接服务器之poll
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。主要结构#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout); struct pollfd { int fd; /* 文件描述符 */ short events; ...
2020-04-28 19:54:17
309
2
原创 【网络编程】实现一个简单的多进程并发服务器
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。Socket发送端和接收端成对出现绑定ip + portsocket为linux中的伪文件一个文件描述符有2个缓冲区,一读一写sockaddr_in 结构体struct sockaddr_in { __kernel_sa_family_t sin_family; /*...
2020-04-20 01:38:56
639
4
原创 【面经】微软SWE暑期实习
题目7个晶体管上的灯的亮暗可以组成0-9的任意一个数字。假设有n组晶体管,每组晶体管中至少有一个亮,可能存在坏了的晶体管。假设有2组晶体管,第一组是数字2,因为有坏了的可能,2->2,2->8;其可能为2/8;第2组是数字4,其可能为3/8/9由此可以组成{23,28,29,83,88,89}input:n个7位数,即有n组晶体管output:组成的数字,例如本...
2020-04-14 17:47:04
976
原创 【编译原理】实现一个计算器
实现一个计算器,包括加减,乘除,括号,错误提示,id等,相当于一个小型的解释器。其中重要的思想是把字符转换成token 递归解析//编译原理实现计算器#include<bits/stdc++.h>using namespace std;//int factor(const char **) throw();enum { //枚举:第一个元素=0,第二个就为1,依...
2020-04-14 17:25:05
1797
原创 【汇编】用户登录验证程序
程序执行后,给出操作提示,请用户输入用户名和密码;用户在输入密码时,程序不回显输入字符;只有当用户输入的用户名、密码字符串和程序内定的字符串相同时,才显示欢迎界面,并返回DOS。界面的颜色自定(彩色或黑白)实验代码:;FILENAME: EXA131.ASM.486NEWLINE MACRO ;换行;宏指令 MACRO...ENDM ...
2019-10-16 14:21:43
3860
2
原创 【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数
从BUF单元开始存有一字符串(长度<255),编程实现统计该串字符中的ASCII码在42H~45H之间的字符个数,并将统计结果以二进制形式显示在屏幕上。;FILENAME: EXA131.ASM.486DATA SEGMENT USE16BUF DB 'BB' ;开始存有一字符串COUNT EQU $-BUF ;count...
2019-10-06 03:00:05
6090
1
原创 【汇编】显示:25+9=34
1.题目要求下面给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的错误信息对源程序进行修改,直到没有语法错误为止。然后进行链接,并执行相应的可执行文件。正确的执行结果是在屏幕上显示:25+9=34。2.流程图3.程序;FILENAME: EXA131.ASM...
2019-10-05 21:54:29
2758
1
原创 【Jarvis OJ】Login--password='".md5($pass,true)."'
Login题目需要密码才能获得flag哦。题目链接:http://web.jarvisoj.com:32772思路:打开链接是一个提交password界面,放到burp里看一看呀~ 看到有提示哦~Hint: "select * from `admin` where password='".md5($pass,true)."'"一看到md5,我就想到pas...
2018-10-31 20:45:20
1714
1
原创 【Linux】重定向
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》3.https://ryanstutorials.net/linuxtutorial/piping.php4.学习笔记保存在幕布:这里有完整Linux学习笔记哦~重定向管道和重定向的作用是保持数据在程序和文件之间流动。比如说:通常情况下,我们会在屏幕上显示输出,这在大多数情况下很方便,但有...
2018-10-27 22:40:57
244
原创 【Linux】特殊字符
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》学习笔记保存在幕布:这里有完整Linux学习笔记哦~ 特殊字符【|】管道 例子:ifconfig|sed -n '2p',【|】即使把ifconfig的输出当成是后面的输入,sed -n取消默认输出,2为第二行,p为打印出来 【..】或【../】上一级目录 【.】或【./】当...
2018-10-27 22:39:41
375
原创 【Linux】常用快捷键
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》学习笔记保存在幕布:这里有完整Linux学习笔记哦~ 常用快捷键 http://oldboy.blog.51cto.com/2561410/907098【Tab】命令补全,路径补全。按三下是所有可能 【Ctrl+c】命令终止 【Ctrl+d】退出当前窗口,相当于exit,logou...
2018-10-27 22:38:04
251
原创 【Linux】Linux目录
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》3.学习笔记保存在幕布:这里有完整Linux学习笔记哦~ Linux目录特点 /是所有目录的顶点 目录结构像一棵倒挂的树 目录和磁盘分区是没有关联的, /下不同的目录可能会对应不同的分区或磁盘 所有目录按照一定类别有规律组织 分类 /usr/bin 可执行文件...
2018-10-27 22:36:16
1358
原创 【Linux】Linux系统的基础优化讲解
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》学习笔记保存在幕布:这里有完整Linux学习笔记哦~Linux系统的基础优化讲解1.关闭SELinux(类似防火墙的安全机制,安全用别的方案解决) 方法1:vim修改 vim /etc/selinux/config (使SELINUX=disabled,彻底关掉) 方法2:...
2018-10-27 22:34:17
398
原创 【Linux】远程连接Linux系统及故障排查
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》远程连接Linux系统原理 互联网上的计算机都会有一个32位的地址,ip地址。 我们访问服务器,就必须通过这个ip地址。 局域网里也有预留的ip地址 192/10/172开头。局域网的ip地址也是唯一的。 NAT模式,电脑宿主机的ip在局域网里一定唯一,NAT模式创建虚拟机,虚拟机就...
2018-10-21 01:18:49
413
原创 【Linux】路径,mkdir,touch,vi等知识知识问答精讲
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》路径,mkdir,touch,vi等知识知识问答精讲Linux 系统命令操作语法的格式 命令 [参数选项] [文件或路径] 其中[]表示是非必须的,多个参数可以连在一起写 创建一个目录/data windows下的路径:c:\data\test linux下的路径:/data/...
2018-09-29 18:39:58
597
原创 【Linux】学习环境搭建,ip配置及ssh连接
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》学习笔记保存在幕布:这里有完整Linux学习笔记哦~ 搭建学习环境 VMware Workstation 12 装双系统不是工作环境 安装 CentOS虚拟机 下载镜像 新建虚拟机,选择磁盘10G,2网卡,NAT模式 Operating System not fo...
2018-09-29 18:25:45
331
原创 【Linux】操作系统
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》 什么是操作系统? Operating System, 简称OS,是计算机系统中必不可少的基础系统软件。是处于用户与计算机系统硬件之间用于传递信息的系统程序软件。 目前PC(Intel x86)上常见的操作系统:Windows,Linux,DOS,Unix 什么是Linux? ...
2018-09-28 23:01:38
262
原创 【Linux】计算机硬件基础
参考资料:1.视频课程《Linux运维》2.书籍PDF版《Linux运维 Web集群实战》3微信公众号文章《高并发那点事儿》学习笔记保存在幕布:这里有完整Linux学习笔记哦~一、网站PC服务器1U(Unit)=4.45cm 2U型号(2014-2016):R720,R730 1U型号(2014-2016):R420,R430,R620,R630 互联网公司服务器品牌:...
2018-09-26 21:33:10
378
2
Linux系统编程之线程同步
2020-05-08
linux系统编程之线程.zip
2020-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人