Go面试看这里了~(十四)
原文地址:Go面试看这里了~(十四)
1、main和init的区别?
main和init的相同点:定义时不能有任何参数或返回值,且Go程序自动调用。
main和init的不同点:
init可应用于任意包中,且可重复定义多个。 main只能用于main包中,且只能定义一个。
main和init的执行顺序:
对同一Go文件的init调用顺序是从上到下。 对同一package中不同文件的init是按文件名称字符串大小从小到大顺序调用。 对不同package,如不相互依赖,则按main中先import后调用顺序调用init。 对不同package,如相互依赖,则先调用最早被依赖的package的init。
2、什么情况下Go runtime会创建一个协程?
在Go程序中可能有数千Go协程运行在一个线程中,如该线程中任一Go协程阻塞(如等待用户输入),此时Go会创建一个新OS线程并将其余Go协程移动到此线程,以上操作都是runtime来完成。
3、原生map线程安全吗?为什么?怎么实现线程安全map操作?
原生map线程不
Go面试看这里了~(十四)最先出现在Python成神之路。
共有 0 条评论