Я хочу создать pthread с функцией pthread, полученной удаленно. , так что pthread будет скомпилирован отдельно от основного кода, и я сохраню его в известном месте памяти. Когда я создаю pthread из основного статического потока, я передаю только ячейку памяти текста pthread, не имея текста pthread, написанного в основном кодеСоздание внешних pthreads с удаленными текстовыми файлами pthread.
Я не испытываю многопоточности. эта идея правильная и есть ли какие-либо специальные инструкции или директивы, которые я должен использовать?
Заранее спасибо.
Спасибо, это сработало. теперь у меня есть два объектных файла: один для основного кода и второй для pthread, однако они все еще объединены в один ELF. и я не знаю, для чего это адрес памяти, на который указывает указатель pthread. Я хочу, чтобы определить, где основной статический поток должен создавать и запускать новый pthread (что-то вроде extern void * partial_sum_worker (void *) будет находиться в адресе памяти 0x50000000), а во-вторых, любезно прояснить процесс связывания так что pthread перешел в основной ELF – bromanous
Если вы хотите запускать код на произвольном числовом адресе, вы можете просто указать целочисленное значение на указатель функции, например '(void * (*) (void *)) 0x50000000)', как в: 'pthread_create (& id, 0, (void * (*) (void *)) 0x50000000, 0);' – Kaz