- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как можно синхронизировать работу потоков в php? То есть чтобы один участок кода в одно время могла исполнять только одна версия скрипта?
Самый простой метод псевдо критической секции - это что бы скрипт, когда начал работать писал в файлик: "Работаю". А когда заканчивал, переписывал файлик: "Не работаю". И проверять этот файлик.. если уже работает, то выход =)
Если у вас скрипт использует БД PostgreSQL, там можно временно блокировать получение/изменение данных из таблиц. Тоже очень удобно для синхронизации, но PG далеко не у всех... :)
Самый простой метод псевдо критической секции - это что бы скрипт, когда начал работать писал в файлик: "Работаю". А когда заканчивал, переписывал файлик: "Не работаю". И проверять этот файлик.. если уже работает, то выход =)
Ну чтобы не читать, что в файле написана, его просто можно создавать, а после окончания работы удалять :)
Так же можно в БД создать раздел, куда записывать работает ли скрипт или нет.
Ну чтобы не читать, что в файле написана, его просто можно создавать, а после окончания работы удалять
Понимаю, что паранойя.. но не доверяю я динамическому созданию/удалению файлов... :) Вот читать/писать в уже созданный файл - другое дело :)
писать на нормальном языке, поддерживающем потоки. пхп не многопоточный, не надо из него делать то, для чего он не предназначен
Как можно синхронизировать работу потоков в php? То есть чтобы один участок кода в одно время могла исполнять только одна версия скрипта?
Смотрите семафоры и разделяемую память.
Можно конечно и с файлами, но тогда лучше использовать блокировку на запись, если блокировка не доступна значит код выполняется.
Типа того
1. блокировка
2. если блокировка не доступна - sleep или exit
3. если доступна выполняем код
WhiteSmartFox добавил 02-02-2011 в 17:17
пхп не многопоточный, не надо из него делать то, для чего он не предназначен
кто сказал?
http://www.php.net/manual/en/book.sem.php :)
Если у вас скрипт использует БД PostgreSQL, там можно временно блокировать получение/изменение данных из таблиц. Тоже очень удобно для синхронизации, но PG далеко не у всех..
Зато у всех есть mysql, а там есть LOCK TABLES.
кто сказал?
херня все это. пишите на нормальном языке, пхп гавно для этих целей. либо разделяйте задачу на "шаги" и пусть каждый скрипт складывает задачи для другого скрипта работника.
пхп гавно для этих целей
А вот интересно, почему? Насколько я знаю, пхп какие-то перловые корни имеет? А в перловке с потоками особых проблем нет.
херня все это. пишите на нормальном языке, пхп гавно для этих целей
ууу, много я слышал таких заявлений вроде пхп говно, на самом деле для своих целей он почти идеален (могу сравнивать с десятком языков). Почему из-за одной небольшой проблемы надо менять язык?
И что писать сайт на C++ или на Java EJB только из-за подобной небольшой проблемы?
WhiteSmartFox, для своих целей он и в правду почти идеален. Но его цели - это создание сайтов, а не многопоточность.
Из-за небольшой проблемы язык менять не надо. Достаточно решить эту проблему на подходящем языке.