【问题标题】:Golang HTTP server requests async or sync?Golang HTTP 服务器请求异步还是同步?
【发布时间】:2017-07-10 06:07:10
【问题描述】:

我的 Angular 网站调用了 Golang 中的 RESTful API。

默认情况下,Go http 模块是按顺序处理请求还是同时处理请求?

另外,如果我在 Go 中的 HandlerFunc 调用一个 python 脚本,对这个 HandlerFunc 的并发调用会产生多个 python 进程,还是会被阻塞直到一个完成?

【问题讨论】:

  • 明白了!调用python脚本怎么样?并发的 goroutine 会被阻塞吗?
  • 我不知道你是怎么调用它们的,它们是做什么的,但总的来说你可以说调用goroutine(请求)会被阻塞,但是你可以从多个请求中同时调用脚本.
  • exec.Command("python", pythonFile, args) 是我的称呼
  • @WiredPrairie 这就是您创建exec.Cmd 的方式。 Cmd.Run() 运行它并等待它完成(块)。 Cmd.Start() 启动它但不等待(不阻塞)。如果您使用Cmd.Start(),您可以使用Cmd.Wait() 等待它完成。

标签: http go concurrency


【解决方案1】:

是的,默认情况下所有http请求都可以并发执行。

如果您正在执行 python 脚本,那么确实会产生一个单独的进程,并且它们将同时执行。

请注意,这存在产生过多进程和耗尽资源的潜在风险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多