0
bash: $: yes a
[some output] then press Ctrl+Z
      $: yes b
[some output] then press Ctrl+Z

然后,执行 bg 两次并得到一些输出:

abbbaaaabaaaabbabaaaa abaaabaabaa ... 一个 bbbbbbbb 等。

为什么a和b互换这么随意?

4

3 回答 3

3

这不得不做进程调度,这是一个相当复杂的话题。

我对该主题的了解不足以准确解释为什么它是随机的,但可以说 Linux 内核正在决定每个进程获得多少 CPU 时间,并基于还有多少其他进程也在运行以及它们到底是什么正在做,它可以发生巨大的变化。

于 2013-03-08T17:22:20.427 回答
0

因为两个进程同时运行?这不是你所期望的吗?

于 2013-03-08T17:17:54.630 回答
0

顺便说一句, yes 通常不会在一行上给出一个字符串,所以我假设你的意思是你想要: a
b
a
b
a
b

我想不出比这更短的方法来使用标准的 unix 命令来做到这一点:

awk 'BEGIN{while (1){print "a\nb"}}'

于 2013-03-10T16:06:40.357 回答