c++和python的进程锁
时间: 2023-12-07 07:04:05 浏览: 39
C++和Python都支持进程锁来实现多线程或多进程间的同步。在C++中,可以使用`std::mutex`和`std::lock_guard`来创建进程锁。示例代码如下:
```cpp
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mtx;
void printNumbers()
{
std::lock_guard<std::mutex> lock(mtx); // 创建进程锁
for (int i = 0; i < 5; i++)
{
std::cout << i << " ";
}
std::cout << std::endl;
}
int main()
{
std::thread t1(printNumbers);
std::thread t2(printNumbers);
t1.join();
t2.join();
return 0;
}
```
在Python中,可以使用`threading`模块中的`Lock`类来创建进程锁。示例代码如下:
```python
import threading
lock = threading.Lock()
def print_numbers():
with lock: # 创建进程锁
for i in range(5):
print(i, end=" ")
print()
t1 = threading.Thread(target=print_numbers)
t2 = threading.Thread(target=print_numbers)
t1.start()
t2.start()
t1.join()
t2.join()
```
这些示例代码展示了如何在C++和Python中使用进程锁来确保多个线程或进程之间的同步访问。进程锁可防止多个线程或进程同时访问共享资源,以避免数据竞争和不一致的结果。