P和M的数量一定是1:1吗?如果一个G阻塞了会怎么样?P和M的数量一定是1:1吗?如果一个G阻塞了会怎么样? **题目来源:**哔哩哔哩 答案1: 不一定,M必须持有P才可以执行代码,跟系统中的其他线程一样,M也会被系统调用阻塞。P的个数在启动程序时决定,默认情况下等于CPU的核数,可以使用环境变量GOMAXPROCS或在程序中使用runtime.GOMAXPROCS()方法指定P的个数。M的个数通常稍大于P的个数,因为除了运行Go代码,runtime包还有其他内置任务需要处理。