posix threads
Насколько я знаю, в Linux 2.4 для этого есть библиотека какая-то, а в 2.5 это в kernel запихали. Но не в теме. Google более точно скажет.
Да я что-то пытался поискать... как-то не густо
Posix <pthread.h> :
int pthread_create(pthread_t *tid, const pthread_attr_t *tattr,
void*(*start_routinevoid * void *arg);
В Linux нужно при линковке подключать –lpthread. В Cygwin – не нужно !
Solaris <thread.h> :
int thr_create(void *stack_base, size_t stack_size,
void *(*start_routine) (void * void *arg, long flags, thread_t *new_thread);
Подключить -lthread
Ну я так понял, что то, что ты назвал Solaris threads не есть реализация posix threads в Solaris. Т.е. ты хочешь сказать, что её там нет... просто я где-то видел инфу, что в последней версии есть поддержка POSIX.1c или как-то там оно ещё пишется.
http://www.gnu.org/software/pth/ -может поможет ?
хотя я в этом деле не специалист
хотя я в этом деле не специалист
это связано с тем, что треды реализуются отдельными процессами, со своими PID, атрибутами безопасности и пр.
В 2.5 (и в некоторых vendor kernels, например в RedHat 9) есть более новая реализация (NPTL требующая новой glibc, утверждается, что она гораздо совместимее, и многие другие проблемы устранены.
Я это смотрел тоже. pth - это что-то отдельное (portable threads реализуется там всё руками без использования ядра на сколько я понял. Возможно есть смысл воспользоваться этим. Тогда вопрос - пытался ли кто-нибудь скомпилировать это дело на Solaris'е?
Придётся из заюзать, т.к., видимо, особых альтернатив нету...
Оставить комментарий
tokuchu
Кто знает как с поддержкой этого в Linux и Solaris. В Linux на сколько я знаю есть linux threads, которые это дело реализуют. На сколько они соответствуют стандарту? И есть ли их реализация в Solaris'е и соответственно тоже на сколько стандартная? Т.е. будут ли проблемы с переносом сырцов? Кто-нибудь может мне на этот вопрос ответить?