腾娱-欢乐斗地主-服务器开发-Go社招-7.26

alt

  1. 共享一下桌面,开启摄像头,打开人像画中画,并将人像调整到最大,露出上半身和双手
  2. 说一下这段代码输出的结果
func modifySlice(s []int) {
    s[0] = 99
    s = append(s, 4)
    fmt.Println("Inside modifySlice:", s)
}

func main() {
    slice := make([]int, 0, 6)
    slice = append(slice, 1)
    slice = append(slice, 2)
    slice = append(slice, 3)
    modifySlice(slice)
    fmt.Println("After modifySlice:", slice)
}
  1. 这段代码的输出是什么?
func main() {
	wg := sync.WaitGroup{}
	for i := 0; i < 10; i++ {
		wg.Add(1)
		go func(wg *sync.WaitGroup) {
			fmt.Println(i)
			wg.Done()
		}(&wg)
	}
}
  1. 三个 goroutine,两个goroutine计算(不打印),一个加到 1 万,一个加到 2 万;第三个等他们两个算完,将他们两个的和打印出来
func main() {
	// 三个 goroutine,两个goroutine计算(不打印),一个加到 1 万,一个加到 2 万
	// 第三个等他们两个算完,将他们两个的和打印出来
	var wg sync.WaitGroup
	sum1Chan := make(chan int)
	sum2Chan := make(chan int)

	// 第一个
	wg.Add(1)
	go func() {
		defer wg.Done()
		sum := 0
		for i := 1; i <= 10000; i++ {
			sum += i
		}
		sum1Chan <- sum
	}()

	// 第二个
	wg.Add(1)
	go func() {
		defer wg.Done()
		sum := 0
		for i := 1; i <= 20000; i++ {
			sum += i
		}
		sum2Chan <- sum
	}()

	// 第三个
	wg.Add(1)
	go func() {
		defer wg.Done()
		sum1 := <-sum1Chan
		sum2 := <-sum2Chan
		fmt.Println("sum: ", sum1+sum2)
	}()
	wg.Wait()
}

  1. goroutine跟进程跟线程直接的关系
  2. goroutine是怎么调度的
  3. 一个场景题
#腾娱互动##Golang社招##后台开发##光子工作室群##腾讯#
全部评论
朋友 你是在哪里投的简历呀 好多面试呀 我跟你情况差不多都是已读不回
点赞 回复 分享
发布于 07-27 23:37 江苏
得得得得得得得得得得得得
点赞 回复 分享
发布于 08-08 22:47 安徽

相关推荐

1 5 评论
分享
牛客网
牛客企业服务