我試圖編寫多線程應用程序,它將通過結構共享一些參數。這裏是代碼的相關部分。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