Giter VIP home page Giter VIP logo

data-structures-questions's Introduction

With hopes and dreams, challenges and opportunities coexist

  • Years of development experience with Go.

  • Currently lenarning compiler.

data-structures-questions's People

Contributors

huiyifyj avatar keke-li avatar ronething avatar xs-cw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

data-structures-questions's Issues

提问

https://github.com/KeKe-Li/data-structures-questions/blob/master/src/chapter05/golang.01.md

501 line

另一种情况是P所分配的任务G很快就执行完了(分配不均),这就导致了这个处理器P很忙,但是其他的P还有任务,此时如果global runqueue没有任务G了,那么P不得不从其他的P里拿一些G来执行。

"这就导致了这个处理器P很忙",这里指的是 P 已经将 G 执行完成了,所以是忙还是闲,还望得到您的回复,谢谢

10.Redis事物的了解CheckAndSet操作实现乐观锁 - 回答中 涉及"回滚" 部分描述有误?

回答中说到 Redis 会进行回滚??官方文档上说的是 Redis 是不支持回滚的。如果在事务中的某条命令发生错误,Redis 会继续把剩下的命令都执行完,保证原子性,但是,Redis 的数据不会回到事务执行之前的了。

另外回答中还说到一点,把 DISCARD 看作关系数据库中的 ROLLBACK,似乎也不对吧....... 关系型数据库(MySQL)中事务回滚靠的不是回滚日志么.... 也就是说 INSERT 了一条数据,回滚日志中会有一条 DELETE 命令。但是 DISCARD 是刷新事务队列,退出事务。并不能 ROLLBACK 吧。。。。。。。。。。。。

如果我疑问的部分有什么不对,欢迎大家指正... 冒昧了..

Go中的GPM调度

新创建的G应该是放到P的本地队列,当本地队列满了再放到全局队列里

有关 TIME-WAIT 含义描述的疑问

作者大大你好,请问您在网络问题的第 3 题中关于 TIME-WAIT 含义的描述替换为以下描述是否更加无异议?

原:客户端收到服务端的FIN包,并立即发出ACK包做最后的确认,在此之后的2MSL时间称为TIME_WAIT状态。

现:主动请求关闭连接的那一端收到被动关闭连接的另一端发送来的FIN包,并立即发出ACK包做最后的确认,在此之后的 2 MSL 时间称为 TIME-WAIT 状态。

question

image

  1. go defer 使用
    f2() 和 f3() 貌似一样?
f2: defer 是在 t 赋值给 r 之后执行的,而 defer 延迟函数只改变了 t 的值,r 不变。正确答案 5。

f3: 这里将 r 作为参数传入了 defer 表达式。故 func (r int) 中的 r 非 func f() (r int) 中的 r,只是参数命名相同而已。正确答案 1。

推测是 f2() 例子不小心贴错?还望得到回复,谢谢。

有关无缓冲chan 发送和接收阻塞的疑问

作者大大你好,有关面试题目:无缓冲的chan的发送和接收是否同步 中。
您有关无缓冲发送的描述:channel无缓冲时,发送阻塞直到数据被接收,接收阻塞直到读到数据。
其中发送阻塞的描述是不是有误?因为向一个无缓冲的chan发送数据不会阻塞呀,且按照您的描述,这样不是会死锁吗?

Go 默认stack大小2KB吧?

分块式的栈是最初Go语言组织栈的方式。当创建一个goroutine的时候,它会分配一个8KB的内存空间来给goroutine的栈使用。我们可能会考虑当这8KB的栈空间被用完的时候该怎么办?

Go默认stack大小2KB吧,Go 源代码如下:

// The minimum size of stack used by Go code
_StackMin = 2048

if newg == nil {
newg = malg(_StackMin)
casgstatus(newg, _Gidle, _Gdead)
allgadd(newg) // publishes with a g->status of Gdead so GC scanner doesn't look at uninitialized stack.
}

使用channel比mutex性能高? 你测试过吗?

要想解决数据竞争的问题可以使用互斥锁sync.Mutex,解决数据竞争(Data race),也可以使用管道解决,使用管道的效率要比互斥锁高.

package main

import "sync"

var mutex = sync.Mutex{}
var ch = make(chan bool, 1)

func UseMutex() {
mutex.Lock()
mutex.Unlock()
}

func UseChan() {
ch <- true
<-ch
}

BenchmarkUseMutex-4 100000000 20.5 ns/op
BenchmarkUseChan-4 20000000 62.6 ns/op

网络协议

src/chapter01/golang.01.md

udp协议属于传输协议,和其他你列出来的协议不在同一层。

建议:
1 传输层:tcp udp
2.应用层: http, smtp ,nfs。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.