go - 是否可以在不同的用户下运行 goroutine 或 go 方法?
问题描述
我正在开发一个小型 Web 服务器,该服务器提供文件并提供对每个用户主目录的访问。
如果源是在 CI 中,则可以选择在不同线程下回答每个请求,并确保每个线程都以调用者的用户作为其用户运行。
有什么方法可以实现类似于 Go 中的功能吗?理想情况下,处理请求的代码部分、goroutine 或被调用的方法应该在调用者的用户帐户下运行。
我做了一些研究,似乎在 Go 中我们可以将单个 goroutine 粘贴到当前线程,但我看不出如何创建一个新线程,然后将一个 goroutine 附加到该线程。
解决方案
不可能以不同的用户身份运行 goroutine 或方法,因为它们都在与父进程相同的上下文中运行。Goroutines 相当于绿色线程,甚至不必为每个例程生成适当的 OS 线程。
这个答案也可能取决于操作系统,但我认为这也不适用于 Windows。
如果您通过cmd
包生成另一个进程,那么这个答案可能很有用
在另一个用户下通过 os/exec 运行外部命令
推荐阅读
- reactjs - 使用 this.props.Navigation.navigate 发送数据时出错本机反应
- c - 如何在用户空间程序和Linux内核模块之间进行通信以打印从用户程序发送到内核的消息
- python - 0. 在 Python 中是什么意思?
- python - Pyinstaller exe文件不接受任何输入
- entity-framework-core - Entity Framework Core - 迁移从模型创建所有属性,而不是所需的
- c - 从二进制文件读取 C 编程
- php - Laravel retrieve data with condition from many-to-many condition
- python - 在 python 中绘制 x_n = A**n * x0
- mysql - 最大和计数连接 n 到 n 个表
- startup - 启动时的 Ngrok