自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 线程安全的singleton实现

人们一度认为double checking locking是王道,兼顾了效率和正确性,但由于有人指出由于乱序执行的影响,DCL存在问题。java中可以由嵌套静态类来实现,c++智能次次锁,要不eager initialize。参考陈硕的书,其中用pthread_once实现:template<typename T>class Singleton : boost::noncopyable{public: static T& instance(){ pthread_once(

2020-06-09 23:52:29 218

原创 TLS介绍和过程详解

TLS是Https的安全基础,TLS协议可用于保护正常运行于TCP之上的任何应用协议的通信。TLS协议的有点在于它是与应用层协议无关的。高层的应用协议能透明地建立于TLS协议之上。TLS协议既用到了公钥加密技术又用到了对称加密技术,TLS地握手协议非常有效地让客户和服务端之间完成相互之间地身份认证,其主要过程如下所述:客户端向服务器传送TLS的协议的版本号、加密算法的种类,产生的随机数、以及其他服务器和客户端之间通信的各种信息。服务端向客户端传送TLS协议的版本号、加密算法的种类、随机数以及其他相关

2020-06-09 22:00:43 5354

原创 pat甲级1107

我最开始的思路就是构建连通集,但是在判断两个人是否拥有相同爱好的方法非常笨拙,后来看了网上别人的方法,感觉甚是巧妙,是通过一个hashtable指明已选该课的人的名字,如果你也选了,那么就Union你与该同学。ac代码#include <cstdio>#include <vector>#include <algorithm>using namespace std;vector<int> father, isRoot;int cmp1(int a,

2020-06-01 15:37:37 167

原创 贪心算法解决最小集合覆盖问题

AVL自平衡树关键就是对于递归的每一步插入都要进行判断,而不是对于root节点进行判断。ac代码#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;struct node { int val; struct node* left, * right;};int getHeight(node* root)

2020-05-25 02:06:07 2589

原创 pat 甲级1004

这道题之前做过,这次做一直有两个测试点不能通过,问题就在于他所给出的父子关系信息时是否按照顺序给出,答案是不是,所以不能在循环内部进行level的赋值。ac代码:#include <iostream>#include <vector>using namespace std;struct node { int level; bool yes; int father; node() { yes = true; }};int main() { int n, m

2020-05-12 17:51:28 182

原创 入坑java的学习之路

入坑Java开发的自学之路基础知识变成语言:java python C基本算法基本网络知识:tcp/ip http/https基本的设计模式工具方面操作系统:linux(CentOS/Ubuntu…)代码管理:svn/git持续集成(CI/CD):jenkinsjava的项目管理工具:maven/gradle框架方面ssh(已过时)ssm:(spring + s...

2020-02-26 12:09:13 106

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除