C++20信号量

Aki 发布于 2025-02-15 99 次阅读



#include<iostream>
#include<vector>
#include<algorithm>
#include<mutex>
#include<semaphore>
#include<thread>
using namespace std;

counting_semaphore s{ 1 };

int sum = 0;

void func()
{
	s.acquire();
	for (int i = 0; i < 10000; ++i)
	{
		sum++;
	}
	s.release();
}


int main()
{

	vector<thread> v;
	for (int i = 0; i < 10; ++i)
	{
		v.push_back(thread(func));
	}

	for (int i = 0; i < 10; ++i)
	{
		v[i].join();
	}

	cout << sum << endl;


	return 0;
}