Многопоточность(не форк)

nerezus

Вселенский отказник
Многопоточность(не форк)

PHP5

Как организовать потоки(threads)?
Форк не интересует.
Не интересуют так же и неблок. сокеты, так как я не с сетью заниматься буду )

работу с COM, .NET, JAVA и реализацию потоков из них не предлагать =)
 

tony2001

TeaM PHPClub
очевидным и правильным решением является реализовать многопоточность на C, вместо того, чтобы тянуть всё в PHP.
 

nerezus

Вселенский отказник
Целевая платформа - в основном Windows.
Тем более при форке переменные у parent'a и child'а "не согласуются" =)

-~{}~ 06.08.06 21:56:

очевидным и правильным решением является реализовать многопоточность на C, вместо того, чтобы тянуть всё в PHP.
Нету ли готовых библиотек? или хотя бы готовой кроссплатформенной реализации на C?

Видел pthread(OpenBSD Programmer's Manual, <pthread.h>), но сомневаюсь, что под винду кто-то удосужился ее портировать...

-~{}~ 06.08.06 22:16:

или хотя бы готовой кроссплатформенной реализации на C?
так, оно не поможет, ибо переписывать кучу всего придется, причем работая с пхп-апи. Не осилю.

Неужели ни у кого не было желания такого?

Просто практически в любом учебнике по языкам обычно уделяют достаточно много внимания потокам...
а тут... ((
 

tony2001

TeaM PHPClub
может и есть.
гугль поможет.

-~{}~ 06.08.06 22:19:

>Неужели ни у кого не было желания такого?
ни у кого нет желания переписывать десятки внешних библиотек, от которых зависит PHP.
 

Kelkos

Сам себе программер
nerezus
многопоточность на пыхе - это "кубик дурика" ещё тот.
Если откинуть форк (в виду не кросплатформенности сайта) и реализацию на С, то остаётся единственный метод:
1 - скрипт-контроллер открывает соединение через хттп с "роботом" и передаёт ему комманды, что тому делать. после чего сразу рвёт соединение.
2 - робот работает с ignore_user_abort(1) и продолжает работу после обрыва соединения. Результаты работы складывает в базу.
3 - контролеер ожидает результатов работы запущенных роботов в базе какое то время.

--------
вообщеМ. такая вот мысля. Сам не делал и всё вышеописанное является чистой воды голой теорией.
 

nerezus

Вселенский отказник
Kelkos
думал о подобном костыле(только через файл и передачу переменных между потоками через него). Но.... костыль, блин... причем не полноценный.
 
Сверху