有什麼辦法可以強制線程擁有獨立的地址空間嗎?我想有很多線程使用局部變量運行循環 - 但它們似乎都共享相同的變量。PThreads地址空間
例如
for (i = args->start; i < args->end; i++) {
printf("%d\n", i);
if (quickFind(getReverse(array[i]), 0, size - 1)) {
printf("%s\n", array[i]);
//strcpy(array[i], "");
}
}
i
似乎是跨線程共享。
不使用全局變量或靜態變量,也不會傳遞線程之間的指針,所以不應該有太多的麻煩。唯一需要注意的是使用全局變量或靜態變量的庫函數..... – goji
另外,您的示例並未真正顯示內存正在共享的位置,這些變量在哪裏聲明? – goji
你的意思是像'fork()'? ...您仍然可以使用共享內存,信號燈,... – technosaurus