我试图编写多线程应用程序,它将通过结构共享一些参数。这里是代码的相关部分。C多线程应用程序结构
typedef struct {
....
char xml_file[1024];
....
} GeneratorData;
在主线程(功能)
GeneratorData generator_data;
ConnectionData connection_data;
bzero(&connection_data, sizeof(connection_data));
bzero(&generator_data, sizeof(generator_data));
strcpy(generator_data->xml_file, argv[1]);
strcpy(connection->xml_file, argv[1]);
if(pthread_create(&generate, NULL, (void*)Generator__Init, (void *)&generator_data) < 0){
return -1;
}
if(pthread_create(&connection, NULL, (void*)Connection__Connect, (void *)&connection_data) < 0){
return -1;
}
pthread_join(generate, NULL);
的问题是,在Generator__Init功能XML_FILE的,有时(多经常)含量不,我设置了进去。
函数Generator_ 初始化一切正常,直到连接 _Connect函数启动。这里会有什么问题?进入线程连接我没有从结构生成器获取变量。
感谢您的建议
如果你的线程操纵结构,同步访问可能会导致奇怪的数据 – Taiki