#include \n#include \n#include \n#include \n#include \n\n// 生成随机字符\nchar generateRandomChar() {\n const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+=-{}[]|:;<>,.?/";\n const int charsetSize = sizeof(charset) - 1;\n std::random_device rd;\n std::mt19937 gen(rd());\n std::uniform_int_distribution<> dis(0, charsetSize - 1);\n return charset[dis(gen)];\n}\n\n// 生成随机字符串\nstd::string generateRandomString(int length) {\n std::string randomString;\n randomString.reserve(length);\n for (int i = 0; i < length; ++i) {\n randomString += generateRandomChar();\n }\n return randomString;\n}\n\n// 线程函数\nvoid generateRandomStringThreadSafe(int length, std::string& result) {\n result = generateRandomString(length);\n}\n\nint main() {\n const int numOfThreads = 5;\n const int randomStringLength = 16;\n std::thread threads[numOfThreads];\n std::string results[numOfThreads];\n\n // 创建并启动线程\n for (int i = 0; i < numOfThreads; ++i) {\n threads[i] = std::thread(generateRandomStringThreadSafe, randomStringLength, std::ref(results[i]));\n }\n\n // 等待线程完成\n for (int i = 0; i < numOfThreads; ++i) {\n threads[i].join();\n }\n\n // 打印结果\n for (int i = 0; i < numOfThreads; ++i) {\n std::cout << "Thread " << i + 1 << ": " << results[i] << std::endl;\n }\n\n return 0;\n}