C++11使用标准库获取CPU物理核心数、动态创建线程

在本文中,将使用C++11标准线程库来获取CPU的物理核心数,并动态的创建和使用线程;

示例代码

#include <iostream>
#include <thread>
#include <string>

void _call(const std::string message) {

	/*
		std:cout 线程不同步/不安全
		std::cout << message << std::endl;
	*/

	printf("%s\n", message.c_str());

}

int main(int argc, char* argv[]) {

	//获取CPU核心
	int concurrency = std::thread::hardware_concurrency();

	std::cout << "hardware concurrency:" << concurrency << std::endl;

	std::thread* workers = new std::thread[concurrency];

	for (int i = 0; i < concurrency; i++) {

		std::string msg;
		msg = "id - " + std::to_string(i);

		workers[i] = std::thread(_call,msg);
	}

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

	delete[] workers;

	_call("done");
}

运行效果

c++ thread

编译命令

代码保存为main.cpp

gcc -o app.exe main.cpp -lstdc++
分类: 计算机技术
推荐阅读:
近期WordPress更新失败以及官网无法打开原因 在WordPress后台进行更新,尝试多次均发生了 429 Too Many Requests 错误。起初以为是当前WordPress更新用户较多导致的,随后几天发现大多数用户还是无法更新,且错误都为429,且WordPress的官网也无法打开,返回429错误。
TypeError: __format__ must return a str, not NoneType 在 Python 中,如__format__()方法必须返回一个字符串,否则将触发类似TypeError: __format__ must return a str, not NoneType的错误;
如何隐藏WordPress后台地址,保护好你的菊花 默认情况下,Wordpress 的默认后台地址为:http://yourdomain.com/wp-login.php,黑客可以通过这个页面进行暴力穷尽破解,直到破解出你的密码。不论你的密码强度如何,这紧会浪费服务器资源,且网站也会留下安全隐患。
Python实现快速排序(quick sort) 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
Python实现插入排序(insertion sort) 插入排序(insertion sort)是一种比较简单的排序算法;其原理类似于对一手扑克牌进行排序;
最新阿里云免费SSL证书申请教程 2021年最新申请阿里云免费SSL证书流程如下: