delta_lt_0

delta_lt_0 查看完整档案

厦门编辑  |  填写毕业院校  |  填写所在公司/组织 httping.com 编辑
编辑

一流画家

个人动态

delta_lt_0 赞了回答 · 2020-07-08

跨实例的表,连表查询+分页,有什么好的思路吗?

post表冗余个country字段,直接在post表进行过滤分页(这样就不用考虑数据量会很大),再去user表获取用户详细信息。
不过查询条件如果再需要用到user表其它字段,那还是在程序里面做过滤吧,可以权衡看下。

关注 4 回答 3

delta_lt_0 赞了回答 · 2020-04-23

解决Go 的 new() 和 make() 关于零值的疑问

new:

In Go terminology, it returns a pointer to a newly allocated zero value of type T.

new 返回一个指针,指向的对象是 zero value 。map slice channel 的 zero value 是 nil。

make 返回一个相应类型的对象(不是指针),这个对象一定不是 nil 。

关注 2 回答 2

delta_lt_0 赞了回答 · 2020-04-23

解决Go 的 new() 和 make() 关于零值的疑问

new是新建一个类型的指针的变量,new(User)相当于&User{},创建的指针指向的对象属性全部是零值。
make是创建一个指定类型(仅map、chan、slice支持make)变量,参数指定了对象的类型和容量以及长度,并进行了对象的初始化操作。

make([]int, 3)       // slice len=3 cap=3
make([]int, 0, 3)    //slice len=9 cap=3
make(chan int, 3)    // chan 容量3
make(map[int]int, 3) // map 容量3

其中Ptr类型变量比较简单就一个地址数值;而Slice、Chan、Map类型变量是相对复杂一些拥有很多属性,在make时会根据参数执行一些初始化操作,例如分配长度需要空间。

new -> Ptr
make -> Slice Map Chan

关注 2 回答 2

delta_lt_0 收藏了问题 · 2020-04-22

go new函数

type Request struct {
   ...
}

r1 := new(Request)
r2 := &Request{}

r1 和 r2 有什么区别吗?

我是看到标准库中 net/http/request.go
func (r *Request) WithContext(ctx context.Context) *Request
的实现用到了new, 看了很多网上的资料都找不到为什么要用new.

delta_lt_0 关注了问题 · 2020-04-22

解决go new函数

type Request struct {
   ...
}

r1 := new(Request)
r2 := &Request{}

r1 和 r2 有什么区别吗?

我是看到标准库中 net/http/request.go
func (r *Request) WithContext(ctx context.Context) *Request
的实现用到了new, 看了很多网上的资料都找不到为什么要用new.

关注 6 回答 4

delta_lt_0 提出了问题 · 2020-04-22

解决Go 的 new() 和 make() 关于零值的疑问

在 effective go 里写道:

new

https://golang.org/doc/effect...

does not initialize the memory,it only zeros it

make

https://golang.org/doc/effect...

It creates slices, maps, and channels only, and it returns an initialized (not zeroed) value of type T (not *T)

意思大概是:

new : allocate memory + zero it
make : allocate memory + initialize memory

我的疑问是:

Q1 : alloate memory 我能理解,initialize memory 是什么意思?

Q2 : 如上面写的 new zero it,但 make not zeroed,这个说法准确吗?好像仅 effective go 里提到了这个 zero 操作的区别,其他关于 new 和 make 区别的文章里都没有提到。

关注 2 回答 2

delta_lt_0 关注了问题 · 2020-02-21

解决如何理解池化技术?

Q1: 如何理解池化技术?
我的理解是:
比如连接池,就是将连接看作一个资源,放到一个pool里,有一个调度器(不知道这个说法正不正确)根据请求来调度这些连接。连接池的作用是避免每一次使用都要建立连接、销毁连接等这方面的开销。

Q2: php-fpm 可以算是一个连接池吗?
如果 Q1 我的理解正确,那么 php-fpm 算连接池吗? 因为我有看到 php-fpm 会有一个 pool.d 的目录。
如果 php-fpm 算,那么 fastcgi 的其他实现也都算吗? nginx 的 master worker 进程算吗?

Q3: 除了连接池,还有其他的池化技术吗?

关注 8 回答 3

delta_lt_0 提出了问题 · 2020-02-16

为什么 traceroute 的某一跳有多个 host ?

如下图:

image.png

我的问题是:

  1. 第 8 跳为什么有 3 个不同的 host?
  2. 第 8 跳中,为什么第 1 个 host 发送 4 个探测包,而接下来 2 个 host 各 1 个探测包 ?

能否请大家帮忙分析一下第8,9跳。

关注 1 回答 0

delta_lt_0 回答了问题 · 2019-12-21

事件总线(引擎)和消息队列有何区别?

试着回答一下 :

它们两者在系统架构中的角色不同。

  • eventbus ,是事件集散中心,它负责收集、散发事件。它本身不消费事件。
  • mq,一般是事件处理者,它接收到事件之后,内部消费掉。

eventbus 可以把收集到的事件,dispatch 给异构的 consumer(比如mq) 去处理。

当然,event bus 是一个模式,而 mq 是一种技术。你可以把 mq 改造一下,让 mq 实现 event bus 的功能,那么此时这个经过改造的 mq 它也能当做 event bus 来用。

关注 3 回答 2

delta_lt_0 关注了问题 · 2019-12-15

解决Golang如何实现类似php缓冲区刷新输出的功能?

go实现的代码:
https://segmentfault.com/q/1010000015929180?sort=created

php实现的代码
https://segmentfault.com/a/1190000011059980

运行这个提问的第一个回答的代码后发现,虽然golang已经是实时把内容输出给浏览器了,但是浏览器并不是实时显示从服务器获取到的内容

请问如何才能实现浏览器也实时显示的功能呢?
image

关注 4 回答 2

认证与成就

  • 获得 23 次点赞
  • 获得 49 枚徽章 获得 0 枚金徽章, 获得 10 枚银徽章, 获得 39 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2016-05-30
个人主页被 1.2k 人浏览