多任务编程,其中一种实现方式就是使用多线程。
在 C 语言中,如果某个函数被多个线程调用,函数内的局部变量通常不需要加锁访问。这是因为局部变量存储在每个线程的栈空间中,每个线程都有自己独立的栈空间,因此每个线程对局部变量的访问是独立的,不会相互干扰。
但多线程操作全局变量和静态变量:需要加锁!
- 局部变量:每个线程有自己的栈空间,局部变量存储在栈中,因此不需要加锁。
- 共享资源:如果函数内部访问了全局变量或静态变量,需要加锁来确保线程安全。
- 函数调用:如果函数内部调用了其他函数,而这些函数访问了共享资源,也需要加锁。