- 博客(26)
- 资源 (5)
- 收藏
- 关注
原创 搜狗 workflow异步调度框架(二)HTTP客户端
实现一个http客户端的基本流程如下:使用工厂函数,根据任务类型HTTP,创建一个任务对象;设置任务的属性;为任务绑定一个回调函数;启动任务。
2023-01-01 23:29:16
1564
1
原创 搜狗 workflow异步调度框架--1.基本介绍篇
按照workflow官方的README所述,Workflow是搜狗公司C++服务器引擎,编程范式。支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理数百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数后端与嵌入式开发需求。
2023-01-01 15:06:44
1224
原创 设计模式——外观模式
外观模式( Facade Pattern )意图: 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要解决: 降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。何时使用: 1、客户端不需要知道系统内部的复杂联系,整个系统只需提供一个"接待员"即可。 2、定义系统的入口。如何解决: 客户端不与系统耦合,外观类与系统耦合。关键代码: 在客户端和复杂系统之间再加一层,这一层将调用顺序、依赖关系等处理好。应用实例: 1、三层开发模式。
2021-12-17 23:43:22
1169
原创 Xshell添加快捷命令按钮
1.打开Xshell,查看-> 快速命令 -> 快速命令栏。2.点击Xhell左下角的 [三] ,选择添加按钮,在弹出框的“标签栏”和“文本”栏分别输入名称和命令,最后点击【确定】即可。
2021-10-27 20:08:40
1808
原创 6.用c语言实现蛇形数组
回形遍历方阵输入一个整数n (n <= 10),构造一个n*n方阵,方阵数值从1开始递增,按照“右 下 左 上”的方式循环向内填充。n = 4 1 2 3 412 13 14 511 16 15 610 9 8 7#include <stdio.h>// 回形遍历方阵int main(){ int arr[10][10] = { 0 }; int num = 1; int n; int i,...
2021-09-05 21:34:37
1393
原创 5.【C语言】102个整数中有50个数出现了两次,2个数出现了一次, 找出出现了一次的那两个数
在解决问题前需要了解三个位运算知识:1.任何一个数和0按位异或就是其自身。例如:2^0=0;0000 0010 ^ 0000 0000 = 0000 00102.任何一个数和其自身按位异或结果为0。例如:2^2=0;0000 0010 ^ 0000 0010= 0000 00003.找到最低位为1,其余位为0的那个数,代码可表示为num=num&-num 或 num=num&~(num-1)。例如:3&(-3)=1;0000 0011 & 1111 1101 = .
2021-08-17 20:00:40
394
2
原创 4.【C语言】101个整数中有50个数出现了两次,1个数出现了一次, 找出出现了一次的那个数
在解决问题前需要了解三个位运算知识:1.任何一个数和0按位异或就是其自身。例如:2^0=0;0000 0010 ^ 0000 0000 = 0000 00102.任何一个数和其自身按位异或结果为0。例如:2^2=0;0000 0010 ^ 0000 0010= 0000 00003.找到最低位为1,其余位为0的那个数,代码可表示为num=num&(-num) 或 num=num&~(num-1)。例如:3&(-3)=1;0000 0011 & 1111 1101 .
2021-08-17 17:32:05
367
原创 3.不用循环,得到一个数,最低位为1的那个数
0000 0000 0000 0101 51111 1111 1111 1011 -5 补码0000 0000 0000 0001 按位与i&-i或num&~(num-1)
2021-08-17 17:10:03
236
原创 2.两种不用第三个变量就可以实现两个变量交换值的方法:
方法一:int a,b;a=a+b;b=a-b;a=a-b;方法二:利用异或运算符交换两个变量的值,避免溢出int i,j;i = i ^ j;i = i ^ j;i = i ^ j;
2021-08-17 17:06:51
127
原创 1.输入一个整数并将其逆序输出
输入一个整数并将其逆序输出#include <stdio.h>int main() { int i, r; scanf("%d",&i); printf("%d\n", i); while (i) { r = i % 10; printf("%c", r+48);//数字变字符 i = i / 10; } return 0;}
2021-08-17 16:58:26
12012
原创 Microsoft visual studio关闭安全检查的几种方法(2015/2017)
初学者对于VS的使用可能还不是很透彻,尤其是VS 的安全检查下面介绍几种去除安全检查的方法,以VS2017为例,其他VS编译器操作方法基本一样VS编译器关闭安全检查一、在源文件开头添加以下代码#define _CRT_SECURE_NO_WARNINGS 1二、关闭此项安全检查既然是由于编辑器的安全检查而引起的报错,那么我们是不是可以选择去掉这项安全检查,而实现代码正常运行呢?答案是可以的!通过观察报错提示,可以看到错误提示号为:4996,我们可以在代码的头部加上如下的定义,来
2021-08-16 22:37:06
6559
原创 Java 多线程编程
目录概念一个线程的生命周期概念Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程能满足程序员编写高效率的程序来达到充
2021-07-23 22:33:57
122
1
原创 关于 String 为啥是不可改变的
关于 String 为啥是不可改变的这里可以根据 jdk 的源码来分析。字符串实际上就是一个 char 数组,并且内部就是封装了一个 char 数组。并且这里 char 数组是被 final 修饰的:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character sto
2021-07-07 10:21:59
215
原创 Java中String类的比较 compareTo()方法详解
compareTo() 方法用于两种方式的比较:字符串与对象进行比较。 按字典顺序比较两个字符串。语法int compareTo(Object o) 或 int compareTo(String anotherString)参数 o-- 要比较的对象。 anotherString-- 要比较的字符串。 源码/**如果参数字符串等于此字符串,则返回值 0;*如果此字符串按字典顺序小于字符串参数,则*返回一个小于 0 的值;*如果此字符串按字典顺序大..
2021-07-06 18:44:53
3916
原创 c语言创建带头结点和不带头节点的单链表(头插法&尾插法)
说明最近开始学习数据结构相关的知识,看到单链表的内容,对于单链表的创建的头插法和尾插法两种方法,又根据单链表是否带有头结点,这样会产生四种情况。作为刚刚开始学习数据结构的小白,很是迷茫,通过参考《大话数据结构》等,现在对单链表的创建做一个总结,以备日后复现。如果下面的内容有错误,还请多多指出。定义结点typedef struct LNode{ int data; struct LNode * next;}LNode;typedef LNode* List;单链表创建之头插法:
2021-06-10 10:50:24
1246
原创 数据结构:C语言实现----不带头结点单链表总结
不带头结点的单链表结构体声明typedef struct Node{ int data; struct Node *next;}Node, *LinkList;(1)初始化void InitLinkList(LinkList *plist) //plist为二级指针,主函数传递第一个结点指针的地址{ assert(plist!=NULL); if(plist == NULL) return; *plist = NULL; }(2)求链表长度int ListLength
2021-06-10 10:12:25
1280
原创 2022王道考研数据结构笔记--第三章 栈和队列
第三章 栈和队列3.1栈(Stack)3.1.1 栈的基本概念栈的定义栈是特殊的线性表:只允许在一端进行插入或删除操作, 其逻辑结构与普通线性表相同栈是特殊的线性表:只允许在一端进行插入或删除操作, 其逻辑结构与普通线性表相同;...
2021-06-09 10:30:30
815
2
原创 Python绘制樱花树
动态生成樱花效果图实现代码# 画一棵樱花 import turtleimport randomfrom turtle import *from time import sleep # 画樱花的躯干(60,t)def tree(branchLen,t): sleep(0.0005) if branchLen >3: if 8<= branchLen <=12: if random.randint(0,2) =
2021-06-02 16:21:35
457
原创 java字符串分解 StringTokenizer的用法
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要将一个字符串分解为一个一个的单词或者标记,可以使用StringTokenizer类。常用方法首先,先理解本类中Token的概念.StringTokenizer类的作用就是对给定的字符串进行分割,而分割后的元素就是Token.比如"This is a java programmer!“这个字符串按照空格来分割,那个分割后就是"This”,“is”,“a”,“java”,"programmer!"五个字符串,也就是5个To
2021-06-02 09:18:42
848
原创 2022王道考研数据结构笔记--第二章 线性表
第二章 线性表2.1 线性表的定义和基本操作要点:线性表的基本操作——创销、增删、改查传入参数时,何时要用引用 &2.2 线性表的顺序表示2.2.1 顺序表的定义顺序表的实现———静态分配#include <stdio.h>#define MaxSize 10 //定义最大长度 typedef struct{ int data[MaxSize]; //用静态的“数组”存放数据元素 ElemType:int int Length;
2021-05-23 20:03:19
753
原创 导入pywifi时,报错ModuleNotFoundError: No module named ‘comtypes‘
导入pywifi模块,在命令行中输入pip install pywifi,显示如下信息,提示需要升级pip按照命令升级然后输入python,切换到python命令编辑界面,输入如下:import pywifi结果报错,报错信息为No module named 'comtypes'解决办法:安装comtypes模块:安装成功后,就可以导入pywifi...
2019-10-31 18:23:07
22774
7
转载 Python之random.seed()用法
参考资料:https://www.runoob.com/python3/python3-func-number-seed.html若侵删描述seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。语法以下是 seed() 方法的语法:import randomrandom.seed ( [x] )注意:seed()是不能直接访问的,需要导入 rand...
2019-06-10 14:23:47
9233
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人