最近在看Go语言的tcp连接,由于涉及知识很多很杂,先零零碎碎记录一些,日后在整理。目录理论测试c语言版本Go语言版本总结参考文章理论有关TCP三次握手和传输数据作者之前也写过一篇,可以也阅读一下。Go语言中TCP、UDP都在net库里面封装好了,对应底层调用的函数都是Linux系统函数。这里我们主要关注TCP协议中listen函数中backlog参数。(图来自)从上图可知:内核为client与s
一、回顾1.1 依赖注入的方式。set方法来注入 <property name=”属性名” />构造方法来注入<construtor-arg index=”” />1.2 依赖注入的数据类型。基本类型和字符串对象类型集合List setmap类型 <entry key= value=>array类型1.3 引入属
转载 8月前
28阅读
在使用python编程时,经常会遇到读写文件的操作。很多童鞋困扰于读写文件的各种模式(如阅读、写入、追加等),以及搞不清open、read、readline、readlines、write等方法的使用。这篇文章就是要告诉你Python文件读写的所有秘密!open函数如果你想用python读取文件(如txt、csv等),第一步要用open函数打开文件。open()是python的内置函数,它会返回一
问题常用的手段。 日志使用 日志分析,就是根据输出的日志信息,分析挖掘可们使用fmt.Println系列函数也可
转载 2019-11-29 21:45:00
92阅读
2评论
标准库log golang实现了简单易用的log,可以满足基本需求。虽然标准库实现了syslog,但已冻结不增加新功能。 Package log implements a simple logging package. It defines a type, Logger, with methods
转载 2020-04-25 12:19:00
222阅读
2评论
数据分区(高级) 这章最后我们讨论的Spark另一个特性,怎样控制数据集在节点之间分区。在分布式程序中,通信是很昂贵的,减少网络流量可以大大提高性能,Spark可以控制RDD分区来减少通信。分区也不是适用于所有的应用,例如如果一个RDD只扫描一次,那么就没有预先进行分区。 Spark分区在所有的key/value的RDDs中都是可用的,并可以根据每
     今天在开发机上搭了个xen虚拟机,在配置数据库时,由于是生产环境,没有必要多启动其他端口的mysql,生产环境启动了一个mysql,端口3306,但是php需要3307和3308端口。。。同事推荐了一个小软件。虽然很古老,但是对于解决这些问题足以了。   配置起来非常简单。   使非本地服务看上去像是来自本地端口&nbs
转载 精选 2010-02-23 17:20:18
3466阅读
一、写文件写文件一般步骤打开文件,获取文件句柄根据不同方法,数据写入关闭文件句柄打开文件,获取文件句柄os.OpenFile(path, os.O_CREATE, 0666)我们来了解一下第二个参数的含义:O_RDONLY   // 只读模式打开文件O_WRONLY   // 只写模式打开文件O_RDWR    // 读写模式打开文件O_APPEND   // 写操作时数据附加到文件尾部
转载 2024-03-26 14:06:37
129阅读
log 日志 log 模块可以自定义log 对象, 也可以使用log默认对象的日志方法 func New 创建log对象 func New(out io.Writer, prefix string, flag int) *Logger logs := log.New(os.Stdout, "lcoa
转载 2019-11-11 16:41:00
366阅读
2评论
package main import ( "log" ) func init() { log.SetPrefix("TRACE: ") log.SetFlags(log.Ldate | log.Lmicroseconds | log.Llongfile) } func main() { // Println writes to the standard l
转载 2019-08-19 21:32:00
149阅读
2评论
Golang的标准库提供了log的机制,但是该模块的功能较为简单(看似简单,其实他有他的设计思路)。不过比手写fmt. Printxxx还是强很多的。至少在输出的位置做了线程安全的保护。其官方手册见Golang log (天朝的墙大家懂的)。这里给出一个简单使用的例子:package main import ( "log" ) func main(){ log.Fatal("Com
原创 2014-05-03 15:05:23
10000+阅读
我们开发程序后,如果有一些问题需要对程序进行调试的时候,日志是必不可少的,这是我们分析程序问题常用的手段。日志使用日志分析,就是根据输出的日志信息,分析挖掘可能的问题,我们使用fmt.Println系列函数也可以达到目的,因为它们也可以把我们需要的信息输出到终端或者其他文件中。不过fmt.Println系列函数输出的系统比较简单,比如没有时间,也没有源代码的行数等,对于我们排查问题,缺少了很多信息
转载 2024-06-12 22:12:57
35阅读
前一篇文章我们看到了Golang标准库中log模块的使用,那么它是如何实现的呢?下面我从log.Logger开始逐步分析其实现。 其源码可以参考官方地址1.Logger结构首先来看下类型Logger的定义:type Logger struct { mu sync.Mutex // ensures atomic writes; protects the following field
原创 2014-05-05 22:09:15
10000+阅读
 1.主协程(main协程)退出后,子协程会相继退出,这个是如果主协程不阻塞看不到子协程打印结果的原因。2.runtime.Goexit()函数用于终止当前 goroutine,但 defer 函数将会被继续调用。3.GOMAXPROCS(n int) int 用来设置可同时运行的线程数,并返回当前设置的值,如果 n<1 将不会改变当前的设置。NumCPU()返回当前的CPU核数,
转载 2024-04-07 12:32:54
42阅读
 log简介golang内置了log包,实现简单的日志服务。通过调用log包的函数,可以实现简单的日志打印功能。log使用log包中有3个系列的日志打印函数,分别print系列、panic系列、fatal系列。函数系列作用print单纯打印日志panic打印日志,抛出panic异常fatal打印日志,强制结束程序(os.Exit(1)),defer函数不会执行实例package main
编译相关依赖yum update yum install wget wget http://nginx.org/download/nginx-1.19.1.tar.gz ## nginx 源码包 wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz ## 正则会用到 wget https://zlib.net/zlib-1.2.11.tar.gz
exec包对os.StartProcess的包装,方便重新映射标准输入输出,连接io到管道等。exec包不调用系统shell,并且不支持shell通配符,或其他的扩展,管道,重定向等。如果需要这些功能,直接调用shell就可以,注意避免危险的输入,或者使用path/filepath包中的glob函数。如果需要扩展环境变量,使用os包的ExpandEnv以下示例都是用Unix系统,可能无法在wind
文章目录GoLang里runtime.Goexit讲解及使用runtime.Goexit()函数来使goroutine跑一半即退出1.介绍"使goroutine跑一半即退出"2.使用runtime.Goexit()函数3.runtime.Goexit()函数的内部实现4.在Debug里的使用runtime.goexit()函数5.介绍runtime.goexit()函数6.每个堆栈底部都使用ru
package mainimport ( "context" "fmt" "github.com/olivere/elastic/v7")type stu struct { Name string `json:"name"` Age int `json:"age"` Married bool `json:"married"`}func main(){ c
原创 2022-08-18 13:34:05
596阅读
1,defer的运用(闭包 + defer)func double(x int)(result int){ 0)方式零: defer fmt.Println("defer:", x) //defer的是一个语句,不是函数(闭包) 1)方式一: defer func(){result += x}() //首先构造闭包(引用了环境x和result),闭包的引用也在函数内,在result之前环境中
转载 2024-10-11 20:40:30
30阅读
  • 1
  • 2
  • 3
  • 4
  • 5