学习笔记
liuxd-hpy
爱好学习!!!
展开
-
Teamtalk线程池
一、线程池模型生产者自主选择消费者(teamtalk思路):任务队列存在于每个工作线程,当有新任务到来时,线程池管理线程自主随机向其中一个工作线程派发任务,推送到该工作线程的任务队列中,接着唤醒该工作线程,从任务队列中取出任务执行。消费者竞争:线程池管理线程维护任务队列,当有任务到来时,任务存于该队列中。然后将新任务到达这个消息广播出去,让工作线程来竞争。二、teamtalk线程池代码任务类CTask,想处理的工作任务必须继承的基类// Task.hclass CTask {publi原创 2022-03-12 15:40:32 · 340 阅读 · 1 评论 -
fread与read性能问题
本文通过strace跟踪 fread 和 read 系统调用的方式探究它们的性能问题1. fread#include <stdio.h>#include <stdlib.h>int main(){ FILE *fp = NULL; char buf[1024*4*10]; if ((fp = fopen("LICENSE", "rb")) == NULL) { perror("fopen"); re原创 2022-03-09 15:50:31 · 1152 阅读 · 0 评论 -
golang基础
++/-- 是语句,不是表达式,只能单独成句var n = 0// 错误使用// func add() int {// n = n++ // syntax error: unexpected ++ at end of statement// return n++ // syntax error: unexpected ++ at end of statement// }func add() int { n++ // 单独成句 return n}函数参数入栈顺.原创 2022-03-08 13:23:42 · 568 阅读 · 0 评论 -
go中切片指向问题
当切片基于数组切片得到时,切片底层数组首地址是否在原数组范围内,见如下代码:package mainimport "fmt"func main() { a := [...]int{1, 2, 3} s := a[:2] // [low:high] fmt.Println(&a[0], a, &s[0], s, len(s), cap(s)) // 0xc0000bc000 [1 2 3] 0xc0000bc000 [1 2] 2 3 // 此原创 2022-03-03 12:26:26 · 431 阅读 · 0 评论 -
Python3自定义排序
数据# 待排序数据# 排序规则:# 1. 二等座: 有>大数字符串>小数字字符串# 2. 历时: 小到大tickets = [ { '车次': 'G1', '历时': "1:23", '二等座': "有" }, { '车次': 'G2', '历时': "1:00", '二等座': "有" }, { '车次': 'G3',原创 2022-01-10 14:21:12 · 691 阅读 · 0 评论 -
docker跨子网通信
docker网络中iptables的一些设置docker通过filter表的FORWARD链进行子网隔离,通过自定义链DOCKER-ISOLATION-STAGE-1和DOCKER-ISOLATION-STAGE-2控制;docker的filter表中FORWARD链有自定义链DOCKER-USER,用于用户自定义一些规则,这条链放在了FORWARD链的最开始处;docker子网间通信默认会进行NAT转换,动作方式为MASQUERADE,因此如果在子网间通信时不想进行NAT转换,可在nat表的POS原创 2021-11-12 16:17:04 · 496 阅读 · 0 评论 -
关于gorm默认值的一些理解
1. 数据库表创建create table users (uid int auto_increment,name varchar(64) not null,age tinyint default '10',gender enum('male', 'female'),primary key (uid))engine=innodb default charset=utf8mb4;2. 对于golang结构中不指定字段,默认使用相应的0值填充数据类型填充值整型0字符原创 2021-10-14 11:28:15 · 5057 阅读 · 0 评论