#include <iostream>
#include <thread>
#include <pthread.h>
void foo(int a)
{
char name[255]={0};
// Weisen Sie dem Thread einen Namen zu
if(pthread_setname_np(pthread_self(), "JoesThread")) {
std::cerr << "Fehler beim Zuweisen des Namens" << std::endl;
}
// int pthread_getname_np(pthread_t thread, char name[.size], size_t size);
if(pthread_getname_np(pthread_self(), name, 255)) {
std::cerr << "Fehler beim Zuweisen des Namens" << std::endl;
}
std::cout << "Joe: " << name << '\n';
}
int main()
{
// Create and execute the thread
std::thread thread{ foo, 10 }; // Pass 10 to free function
// The free function will be executed in a separate thread
// Wait for the thread to finish, this is a blocking operation
thread.join();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGhyZWFkPgojaW5jbHVkZSA8cHRocmVhZC5oPgogCnZvaWQgZm9vKGludCBhKQp7CgljaGFyIG5hbWVbMjU1XT17MH07CiAvLyBXZWlzZW4gU2llIGRlbSBUaHJlYWQgZWluZW4gTmFtZW4genUKICAgIGlmKHB0aHJlYWRfc2V0bmFtZV9ucChwdGhyZWFkX3NlbGYoKSwgIkpvZXNUaHJlYWQiKSkgewogICAgICAgIHN0ZDo6Y2VyciA8PCAiRmVobGVyIGJlaW0gWnV3ZWlzZW4gZGVzIE5hbWVucyIgPDwgc3RkOjplbmRsOwogICAgfQogICAgLy8gIGludCBwdGhyZWFkX2dldG5hbWVfbnAocHRocmVhZF90IHRocmVhZCwgY2hhciBuYW1lWy5zaXplXSwgc2l6ZV90IHNpemUpOwogICAgaWYocHRocmVhZF9nZXRuYW1lX25wKHB0aHJlYWRfc2VsZigpLCBuYW1lLCAyNTUpKSB7CiAgICAgICAgc3RkOjpjZXJyIDw8ICJGZWhsZXIgYmVpbSBadXdlaXNlbiBkZXMgTmFtZW5zIiA8PCBzdGQ6OmVuZGw7CiAgICB9ICAgCiAgICBzdGQ6OmNvdXQgPDwgIkpvZTogIiA8PCBuYW1lIDw8ICdcbic7Cn0KIAppbnQgbWFpbigpCnsKICAgIC8vIENyZWF0ZSBhbmQgZXhlY3V0ZSB0aGUgdGhyZWFkCiAgICBzdGQ6OnRocmVhZCB0aHJlYWR7IGZvbywgMTAgfTsgLy8gUGFzcyAxMCB0byBmcmVlIGZ1bmN0aW9uCiAKICAgIC8vIFRoZSBmcmVlIGZ1bmN0aW9uIHdpbGwgYmUgZXhlY3V0ZWQgaW4gYSBzZXBhcmF0ZSB0aHJlYWQKIAogICAgLy8gV2FpdCBmb3IgdGhlIHRocmVhZCB0byBmaW5pc2gsIHRoaXMgaXMgYSBibG9ja2luZyBvcGVyYXRpb24KICAgIHRocmVhZC5qb2luKCk7CiAKICAgIHJldHVybiAwOwp9