ruby - Ruby 中灵活的系统调用

标签 ruby multithreading thread-safety

我正在开发 Sidekiq唯一目的是进行几个长时间运行的系统调用。我有以下要求:

  • 能够设置环境变量
  • 实时输出(stdout、stderr)流
  • 阻塞线程直到完成
  • 获取退出代码
  • 线程安全,因为 sidekiq 是多线程的(读取:没有 $?)

我正在 Ruby 1.9.2 上运行。感谢您的投入!

最佳答案

$? (以及大多数其他“神奇”变量,如 $1 等)是当前线程的本地变量,因此使用 system并且 $? 是完全线程安全的并且满足您的所有标准。

关于ruby - Ruby 中灵活的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441532/

相关文章:

java - FileUtils.moveFile 在磁盘已满时并不总是抛出 IOException

python - 信号未从线程传递到 GUI

java - RocksDB WriteBatch 线程安全吗?

ruby-on-rails - Ruby on Rails 离线编程

ruby - 开源项目中的版本控制礼仪?

c - 套接字寻址机制卡住了

java - 我的 JAVA 代码线程安全吗,因为该代码仅由一个线程调用?

java - 单次和双重检查延迟初始化

ruby-on-rails - 安装 rvm、ruby、gem、rails、juggernaut 的命令

mysql - 如何为使用子查询的 MySQL 编写 AREL UpdateManager 查询