PHP.mk документација

parallel

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

book.parallel.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека book.parallel.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
parallel

Референца за `book.parallel.php` со подобрена типографија и навигација.

book.parallel.php

parallel

Вовед

parallel е паралелно проширување за конкурентност за PHP ≥ 7.2.0. Од parallel 1.2.0, потребно е PHP ≥ 8.0.0.

Следи краток опис на основните концепти на parallel, подетални информации може да се најдат во овој дел од прирачникот.

Runtime

А parallel\Runtime претставува PHP интерпретерска нишка. А parallel\Runtime се конфигурира со опционална почетна датотека предадена на parallel\Runtime::__construct(), ова е типично автолоадер, или некоја друга рутина за претходно вчитување: Почетната датотека ќе биде вклучена пред да се изврши било каква задача.

По конструкцијата parallel\Runtime останува достапен додека не биде затворен, убиен или уништен од нормалните правила за опсег на PHP објекти. parallel\Runtime::run() им овозможува на програмерот да закажува задачи за извршување паралелно. А parallel\Runtime има FIFO распоред, задачите ќе се извршуваат по редоследот по кој се закажани.

Функционално API

parallel имплементира функционално API од повисоко ниво врз parallel\Runtime што обезбедува единствена влезна точка на функција за извршување паралелен код со автоматско закажување: parallel\run().

Задача

Задачата е едноставно Затворање наменета за паралелно извршување. На Затворање може да содржи речиси секоја инструкција, вклучувајќи вгнездени затворачи. Сепак, постојат некои инструкции кои се забранети во задачите:

  • yield
  • користи по референца
  • декларирај класа
  • декларирај именувана функција

Забелешка: Вгнездени затворачи може да дадат или користат по референца, но не смеат да содржат декларации за класи или именувани функции.

Забелешка: Ниту една инструкција не е забранета во датотеките што може да ги вклучува задачата.

Иднината

На parallel\Future се користи за пристап до вратената вредност од задачата и изложува API за откажување на задачата.

Канал

Задачата може да биде закажана со аргументи, да користи променливи од лексичката област (по вредност) и да врати вредност (преку parallel\Future), но овие дозволуваат само еднонасочна комуникација: Тие му дозволуваат на програмерот да испраќа податоци во и да извлекува податоци од задачата, но не дозволуваат двонасочна комуникација помеѓу задачите. parallel\Channel API дозволува двонасочна комуникација помеѓу задачите, а parallel\Channel е врска слична на приклучок помеѓу задачите што програмерот може да ја користи за испраќање и примање податоци.

Настани

На parallel\Events API имплементира нативно чувство (Траверзабилно) циклус на настани, и parallel\Events::poll() метод. Тој му овозможува на програмерот да работи со множества од канали и иднини. Програмерот едноставно додава канали и иднини во циклусот на настани, опционално поставувајќи го влезот за запишувања со parallel\Events::setInput(), и влегува во foreach: паралелно ќе чита и пишува во објекти како што тие стануваат достапни давајќи parallel\Events\Event објекти што ги опишуваат операциите што се случиле.

Види Исто така

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.