在`spin_lock_init`和`DEFINE_SPINLOCK`之间更喜欢什么以及什么时候?

问题描述 投票:0回答:1

DEFINE_SPINLOCK
spin_lock_init
更可取吗?前者比后者有哪些优点,可能有哪些缺点?

c linux-kernel linux-device-driver
1个回答
8
投票

如果您有静态数据结构,DEFINE_SPINLOCK 允许您声明一个自旋锁变量并在一行中初始化它。 然而,对于在运行时分配的任何内容,例如当自旋锁嵌入到更大的结构中时,您需要分配内存,然后调用 spin_lock_init()。

我想我会说,当可以使用 DEFINE_SPINLOCK 时,我更喜欢它。 优点很小(编译时初始化与运行时初始化相比,少了几行代码),但没有真正的缺点。 正如我上面提到的,但通常无法使用 DEFINE_SPINLOCK。

© www.soinside.com 2019 - 2024. All rights reserved.