- 博客(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 228
原创 TLS介绍和过程详解
TLS是Https的安全基础,TLS协议可用于保护正常运行于TCP之上的任何应用协议的通信。TLS协议的有点在于它是与应用层协议无关的。高层的应用协议能透明地建立于TLS协议之上。TLS协议既用到了公钥加密技术又用到了对称加密技术,TLS地握手协议非常有效地让客户和服务端之间完成相互之间地身份认证,其主要过程如下所述:客户端向服务器传送TLS的协议的版本号、加密算法的种类,产生的随机数、以及其他服务器和客户端之间通信的各种信息。服务端向客户端传送TLS协议的版本号、加密算法的种类、随机数以及其他相关
2020-06-09 22:00:43 5385
原创 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 179
原创 贪心算法解决最小集合覆盖问题
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 2612
原创 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 194
原创 入坑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 114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人