<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[胖佳儿Clara的博客]]></title><description><![CDATA[每天进步一点点~]]></description><link>https://blog.youkuaiyun.com/CLarali0</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CLarali0]]></copyright><item><title><![CDATA[【java】如何实现秒杀功能]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/107982919</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/107982919</guid><author>CLarali0</author><pubDate>Sun, 23 Aug 2020 02:37:20 +0800</pubDate><description><![CDATA[秒杀的过程中【减库存，下订单，写入秒杀订单】需要具有原子性。
所以要保证这三个操作是一个事物。在java中可以用@Transactional注释
//保证这三个操作，减库存 下订单 写入秒杀订单是一个事物
    @Transactional
    public OrderInfo seckill(User user, GoodsVo goods){
        //减库存
        goodsService.reduceStock(goods);
        //下订单 写入秒杀订单
  ]]></description><category></category></item><item><title><![CDATA[【Java】自动登录]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/107982677</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/107982677</guid><author>CLarali0</author><pubDate>Sun, 23 Aug 2020 02:36:40 +0800</pubDate><description><![CDATA[本来想通过Oauth2.0来实现自动登录的。
但是因为一系列原因，最后还是通过如下的方法。

自定义SpringMVC参数解析器, 改变SpringMVC的Controller传入参数，实现可以User替换Token做为参数从登陆页面传到商品列表页面

WebConfig.java
/**
 * 自定参数解析器, 作用：改变SpringMVC的Controller传入参数，实现可以User替换Token做为参数从登陆页面传到商品列表页面
 */
@Configuration
public class Web]]></description><category></category></item><item><title><![CDATA[【Java】RedisTemplate]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/108137966</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/108137966</guid><author>CLarali0</author><pubDate>Sun, 23 Aug 2020 02:33:46 +0800</pubDate><description><![CDATA[//向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]]></description><category></category></item><item><title><![CDATA[【Java】压力测试]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/108129314</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/108129314</guid><author>CLarali0</author><pubDate>Sun, 23 Aug 2020 02:32:46 +0800</pubDate><description><![CDATA[打开JMeter，对商品列表和获取用户信息进行压力测试。




对Redis进程压力测试


]]></description><category></category></item><item><title><![CDATA[【Java】RabbitMQ]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/108167404</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/108167404</guid><author>CLarali0</author><pubDate>Sun, 23 Aug 2020 02:31:21 +0800</pubDate><description><![CDATA[helloworld模式


动态路由模式


]]></description><category></category></item><item><title><![CDATA[【HTTP】HTTP解析]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/107917760</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/107917760</guid><author>CLarali0</author><pubDate>Mon, 10 Aug 2020 17:19:59 +0800</pubDate><description><![CDATA[首先我们来看一下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-&gt;met]]></description><category></category></item><item><title><![CDATA[【python】基于 Diffie-Hellman 的三方密钥交换算法演示]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/107913621</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/107913621</guid><author>CLarali0</author><pubDate>Mon, 10 Aug 2020 15:17:14 +0800</pubDate><description><![CDATA[DH-demo
基于 Diffie-Hellman 的三方密钥交换算法演示
代码：https://github.com/Clara998/DH-demo
实验环境：
方法1：为了统一依赖，我们采用 Pyenv 来管理 Python 的版本，Pipenv 来管理依赖的版本。

Windows 10 下安装 Pyenv
Pipenv 的安装
简明操作指南

方法2：实验环境为python3.7及django3.0.6，可以自行下载
算法流程：

随机生成大素数p
生成大素数p的一个原根g
Alice,Bob,C]]></description><category></category></item><item><title><![CDATA[【网络编程】线程池并发服务器]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/106102478</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/106102478</guid><author>CLarali0</author><pubDate>Wed, 13 May 2020 18:13:04 +0800</pubDate><description><![CDATA[线程池思路

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]]></description><category></category></item><item><title><![CDATA[【linux】线程同步]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/106027538</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/106027538</guid><author>CLarali0</author><pubDate>Sat, 09 May 2020 22:17:29 +0800</pubDate><description><![CDATA[互斥锁
主要应用函数


pthread_mutex_init


静态初始化：如果互斥锁 mutex 是静态分配的（定义在全局，或加了static关键字修饰），可以直接使用宏进行初始化。  pthead_mutex_t muetx = PTHREAD_MUTEX_INITIALIZER;


动态初始化：局部变量应采用动态初始化。pthread_mutex_init(&amp;mutex, NULL)




pthread_mutex_lock
函数加锁。可理解为将mutex–（或-1）
int pth]]></description><category></category></item><item><title><![CDATA[【Linux】线程]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105919447</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105919447</guid><author>CLarali0</author><pubDate>Fri, 08 May 2020 20:47:14 +0800</pubDate><description><![CDATA[概述

相当于一个正在运行的函数
线程有独立的PCB,但是多个线程共享内存
最小执行单位。而进程是最小的分配资源单位

创建线程
相关API
作用:对应进程中fork() 函数。
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);...]]></description><category></category></item><item><title><![CDATA[【网络编程】多路I/O转接服务器之epoll]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105824656</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105824656</guid><author>CLarali0</author><pubDate>Tue, 28 Apr 2020 21:44:25 +0800</pubDate><description><![CDATA[最近学习网络编程相关，学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。
相关API

创建一个epoll句柄，参数size用来告诉内核监听的文件描述符的个数，跟内存大小有关。此步骤创建一个建议大小为size的红黑树（二叉平衡树），返回值为根结点的fd

 #include &lt;sys/epoll.h&gt;
 int epoll_create(int size)     si...]]></description><category></category></item><item><title><![CDATA[【网络编程】多路I/O转接服务器之poll]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105822206</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105822206</guid><author>CLarali0</author><pubDate>Tue, 28 Apr 2020 19:54:17 +0800</pubDate><description><![CDATA[最近学习网络编程相关，学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。
主要结构
#include &lt;poll.h&gt;
int poll(struct pollfd *fds, nfds_t nfds, int timeout);
    struct pollfd {
        int fd; /* 文件描述符 */
        short events; ...]]></description><category></category></item><item><title><![CDATA[【网络编程】多路I/O转接服务器之select]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105771749</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105771749</guid><author>CLarali0</author><pubDate>Mon, 27 Apr 2020 19:45:29 +0800</pubDate><description><![CDATA[·

]]></description><category></category></item><item><title><![CDATA[【网络编程】实现一个简单的多进程并发服务器]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105625968</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105625968</guid><author>CLarali0</author><pubDate>Mon, 20 Apr 2020 01:38:56 +0800</pubDate><description><![CDATA[最近学习网络编程相关，学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。
Socket

发送端和接收端成对出现
绑定ip + port
socket为linux中的伪文件
一个文件描述符有2个缓冲区，一读一写

sockaddr_in 结构体
struct sockaddr_in {
    __kernel_sa_family_t sin_family;          /*...]]></description><category></category></item><item><title><![CDATA[【面经】微软SWE暑期实习]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105517160</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105517160</guid><author>CLarali0</author><pubDate>Tue, 14 Apr 2020 17:47:04 +0800</pubDate><description><![CDATA[题目

7个晶体管上的灯的亮暗可以组成0-9的任意一个数字。假设有n组晶体管，每组晶体管中至少有一个亮，可能存在坏了的晶体管。

假设有2组晶体管，第一组是数字2，因为有坏了的可能，2-&gt;2,2-&gt;8;其可能为2/8；第2组是数字4，其可能为3/8/9

由此可以组成{23,28,29,83,88,89}


input:n个7位数，即有n组晶体管

output:组成的数字，例如本...]]></description><category></category></item><item><title><![CDATA[【编译原理】实现一个计算器]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/105516467</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/105516467</guid><author>CLarali0</author><pubDate>Tue, 14 Apr 2020 17:25:05 +0800</pubDate><description><![CDATA[实现一个计算器，包括加减，乘除，括号，错误提示，id等，相当于一个小型的解释器。

其中重要的思想是

把字符转换成token
	递归解析

//编译原理实现计算器
#include&lt;bits/stdc++.h&gt;
using namespace std;
//int factor(const char **) throw();

enum { //枚举：第一个元素=0，第二个就为1，依...]]></description><category></category></item><item><title><![CDATA[【汇编】用户登录验证程序]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/102584657</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/102584657</guid><author>CLarali0</author><pubDate>Wed, 16 Oct 2019 14:21:43 +0800</pubDate><description><![CDATA[程序执行后，给出操作提示，请用户输入用户名和密码；用户在输入密码时，程序不回显输入字符；只有当用户输入的用户名、密码字符串和程序内定的字符串相同时，才显示欢迎界面，并返回DOS。界面的颜色自定（彩色或黑白）



实验代码：


;FILENAME:    EXA131.ASM
.486
NEWLINE MACRO                   ;换行;宏指令 MACRO...ENDM
 ...]]></description><category></category></item><item><title><![CDATA[【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/102195041</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/102195041</guid><author>CLarali0</author><pubDate>Sun, 06 Oct 2019 03:00:05 +0800</pubDate><description><![CDATA[从BUF单元开始存有一字符串（长度&lt;255），编程实现统计该串字符中的ASCII码在42H~45H之间的字符个数，并将统计结果以二进制形式显示在屏幕上。






;FILENAME:    EXA131.ASM
.486
DATA SEGMENT USE16
BUF     DB     'BB'     ;开始存有一字符串
COUNT   EQU    $-BUF    ;count...]]></description><category></category></item><item><title><![CDATA[【汇编】显示：25+9=34]]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/102174445</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/102174445</guid><author>CLarali0</author><pubDate>Sat, 05 Oct 2019 21:54:29 +0800</pubDate><description><![CDATA[1.题目要求

下面给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序，但有很多语法错误。要求实验者按照原样对源程序进行编辑，汇编后，根据TASM给出的错误信息对源程序进行修改，直到没有语法错误为止。然后进行链接，并执行相应的可执行文件。正确的执行结果是在屏幕上显示：25+9=34。

2.流程图



3.程序


;FILENAME:    EXA131.ASM...]]></description><category></category></item><item><title><![CDATA[【Jarvis OJ】Login--password='".md5($pass,true)."']]></title><link>https://blog.youkuaiyun.com/CLarali0/article/details/83590345</link><guid>https://blog.youkuaiyun.com/CLarali0/article/details/83590345</guid><author>CLarali0</author><pubDate>Wed, 31 Oct 2018 20:45:20 +0800</pubDate><description><![CDATA[Login

题目


需要密码才能获得flag哦。
题目链接：http://web.jarvisoj.com:32772


思路：
打开链接是一个提交password界面，放到burp里看一看呀~

 



看到有提示哦~


Hint: &quot;select * from `admin` where password='&quot;.md5($pass,true).&quot;'&quot;


一看到md5，我就想到pas...]]></description><category></category></item></channel></rss>