Сайт справки
  • Авторизация
  • Обратная связь
  • Теги
    • Joomla
      • JLoader
      • Mootools
      • Bootstrap
      • jQuery
      • jQuery UI
      • Конфликты JS
      • Joomla! Javascript Framework
      • JS Фреймворки
      • Ajax
      • JS
      • MVC
      • JoomShopping
      • Сессии
    • JS

Расширенный поиск
  • Главная
  • Разное
  • Linux
  • Raspberry Pi
  • SWAP в raspberry PI
  • php
  • Многопоточность
  • parallel

Класс parallel\Channel

(0.9.0)

Небуферизованные Каналы

Небуферизованный канал будет блокировать вызовы parallel\Channel::send() до тех пор, пока не появится приемник, и блокировать вызовы parallel\Channel::recv() до тех пор, пока не появится отправитель. Это означает, что небуферизованный канал является не только способом обмена данными между задачами, но и простым методом синхронизации.

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

Буферизованные Каналы

Буферизованный канал не будет блокировать вызовы parallel\Channel::send() до тех пор, пока не будет достигнута емкость, вызовы parallel\Channel::recv() будут блокироваться до тех пор, пока в буфере не появятся данные.

Закрытие каналов

Мощная особенность параллельных каналов заключается в том, что они позволяют обмениваться замыканиями между задачами (и средами выполнения).

Когда закрытие посылается по каналу, закрытие буферизуется, это не изменяет буферизацию канала, передающего закрытие, но влияет на статическую область внутри закрытия: одно и то же закрытие, отправленное в различные периоды времени выполнения, или то же время выполнения, не будет совместно использовать их статическую область.

Это означает, что всякий раз, когда выполняется закрытие, которое было передано каналом, статическое состояние будет таким же, как и при буферизации закрытия.

Анонимные каналы

Конструктор анонимных каналов позволяет программисту избежать назначения имен каждому каналу: параллель создаст уникальное имя для анонимных каналов.

Обзор классов

final parallel\Channel {
	/* Анонимный Конструктор */
	public __construct ( void )
	public __construct ( int $capacity )
	/* Доступ */
	public make ( string $name ) : Channel
	public make ( string $name , int $capacity ) : Channel
	public open ( string $name ) : Channel
	/* Разделение */
	public recv ( void ) : mixed
	public send ( mixed $value ) : void
	/* Закрытие */
	public close ( void ) : void
	/* Константа для бесконечной буферизации */
	const Infinite ;
}

 


  • Настройка/raspi-config
  • Настройка сети вручную
  • Основные команды Linux
  • Как исправить ошибку после обновления Joomla 3.5 «Ошибка Обнаружена ошибка.»
  • PHP 7.0 и PHP 5.6 на одном сервере
  • Архивирование с помощью zip в Debian/Ubuntu/Linux. Архиватор zip.
  • Как установить PHP 5.6 в качестве дополнительного PHP-FPM и FastCGI для ISPConfig 3.1 на Ubuntu 16.04
  • Команда find: широкие возможности для поиска файлов в Linux
  • Основы работы в командной строке Linux
  • 10 команд Linux для новичков
  • Вывод списка файлов с сортировкой
  • Перезагружаем и выключаем компьютер из командной строки
  • Убиваем процессы в Linux - команды ps, kill и killall
  • Запускаем и ищем предыдущие команды в Linux
  • Несколько полезных команд Linux
  • Поиск команд Linux по ключевому слову и по названию
  • Выполнение сразу нескольких команд в командной строке
  • Структура папок ОС Linux. Какая папка для чего нужна. Что и где лежит в линуксе.
  • Как русифицировать Ubuntu server 16.04
  • Настройка samba в Ubuntu 16.04
  • Карта сайта

Наверх

© Сайт справки 2023

Яндекс.Метрика