小编Man*_*ini的帖子

为什么for-in循环无法显示我想要的内容?

我在终端上写道:

arr=(1 2 3)
for x in $arr; do
 echo $x
done
Run Code Online (Sandbox Code Playgroud)

它只打印“ 1”。为什么不打印1 2 3?

bash for-loop

5
推荐指数
1
解决办法
166
查看次数

切换到用户模式时,非抢占式内核和抢占式内核有什么区别?

我正在阅读“了解 Linux 内核,第 3 版”,在第 5 章“内核抢占”部分,它说:

所有进程切换都由switch_to宏执行。在抢占式和非抢占式内核中,当进程完成内核活动的某个线程并调用调度程序时,会发生进程切换。但是,在非抢占式内核中,除非即将切换到用户模式,否则无法替换当前进程。

我仍然没有看到非抢占式内核和抢占式内核之间的区别,因为无论如何您都需要等待当前进程切换到用户模式。

假设有一个进程p在内核模式下运行,并且其时间片到期,然后scheduler_tick()调用 ,并设置pNEED_RESCHED标志。但是只有在p切换到用户模式时才会调用(对吧?)。schedule()

那么如果p永远不会切换到用户模式呢?

如果它切换到用户模式,但在scheduler_tick()设置NEED_RESCHED的时刻和p实际切换到用户模式的时刻之间需要“很长”的时间——那么它使用的比它的量子还多?

linux operating-system kernel linux-kernel preemption

5
推荐指数
1
解决办法
1555
查看次数

Bash如何管理自己的记忆?

例如,如果我声明一个变量a=8:

  • 它存放在哪里?在运行进程堆?
  • 什么时候免费?
  • 谁对此负责?

bash memory-management

5
推荐指数
1
解决办法
600
查看次数

如何使用初始化列表初始化inordered_map <string,unordered_set <string >>成员?

我有这堂课

class A {
    unordered_map<string, unordered_set<string>> n_;
  public:
    A(unordered_map<string, unordered_set<string>>& n) : n_{n} {}
};
Run Code Online (Sandbox Code Playgroud)

我希望能够将构造函数与该语法一起使用

int main() {
    A a{{"C", {"A", "B"}}};
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是以现在的方式写的,我出错了

error: no matching function for call to `‘A::A(<brace-enclosed initializer list>)’ A a{{"C", {"A", "B"}}};`
Run Code Online (Sandbox Code Playgroud)

如何解决?

c++ unordered-map initializer-list unordered-set c++11

3
推荐指数
1
解决办法
118
查看次数

在grep中使用双引号减号会被视为一个选项

如果我在写作

grep -v "-NO" file
Run Code Online (Sandbox Code Playgroud)

它说

grep:无效选项 - 'N'

所以我需要写grep -v -- "-NO" filegrep -v "\-NO" file.

但是-,如果它是双引号,为什么它会识别为选项呢?

bash grep

2
推荐指数
1
解决办法
323
查看次数