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

Расширенный поиск
  • Вы здесь:  
  • Главная
  • Разное
  • Java
  • JAVA SOUND API
  • Руководство по программированию звука Java
  • Глава 13: Введение в интерфейсы поставщика сервисов
  • php
  • Многопоточность
  • pthreads
  • Volatile

(PECL pthreads >= 3.0.0)

Введение

Класс Volatile является новым для pthreads v3. Его введение является следствием новой семантики неизменяемости  членов Threaded классов Threaded. Класс Volatile обеспечивает изменчивость своих членов Threaded, а также используется для хранения массивов PHP в контекстах Threaded.

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

class Volatile extends Threaded implements Collectable , Traversable {
	/* Наследуемые методы */
	public array Threaded::chunk ( int $size , bool $preserve )
	public int Threaded::count ( void )
	public bool Threaded::extend ( string $class )
	public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )
	public array Threaded::getTerminationInfo ( void )
	public bool Threaded::isRunning ( void )
	public bool Threaded::isTerminated ( void )
	public bool Threaded::isWaiting ( void )
	public bool Threaded::lock ( void )
	public bool Threaded::merge ( mixed $from [, bool $overwrite ] )
	public bool Threaded::notify ( void )
	public bool Threaded::notifyOne ( void )
	public bool Threaded::pop ( void )
	public void Threaded::run ( void )
	public mixed Threaded::shift ( void )
	public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
	public bool Threaded::unlock ( void )
	public bool Threaded::wait ([ int $timeout ] )
}

Примеры

Пример #1 Новая семантика неизменяемости Threaded

<?php

class Task extends Threaded
{
    public function __construct()
    {
        $this->data = new Threaded();

        // попытка перезаписать свойство Threaded класса Threaded (недопустимо)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Результатом выполнения данного примера будет что-то подобное:

RuntimeException: потоковые элементы, ранее установленные в потоковые объекты, неизменяемы, не могут перезаписывать данные в %s:%d

Пример #2 Volatile использование регистра

<?php

class Task extends Volatile
{
    public function __construct()
    {
        $this->data = new Threaded();

        // попытка перезаписать  свойство Threaded  класса Volatile (допустимо)
        $this->data = new StdClass();
    }
}

var_dump((new Task())->data);

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#3 (0) {
}

  • 01 - Java Sound API. Начало работы, Часть 1, Воспроизведение.
  • 02 - Java Sound API, Начало работы, Часть 2, Захват с помощью выбранного микшера.
  • 03 - Java Sound API, Использование событии звуковой линии.
  • Глава 00: Предисловие
  • Глава 04: Воспроизведение аудио
  • Глава 05: Захват аудио
  • Глава 06: Обработка звука с помощью элементов управления
  • Глава 07: Использование файлов и конвертеров формата
  • Глава 08: Обзор пакета MIDI
  • Глава 09: Доступ к системным ресурсам MIDI
  • Глава 10: Передача и получение MIDI-сообщений
  • 00 - Java Sound API, Введение.
  • 04 - Java Sound API, захват данных микрофона в аудиофайл.
  • 05 - Java Sound API, воспроизведение аудиофайлов с помощью Java.
  • 06 - Java Sound API, создание, воспроизведение и сохранение синтетических звуков
  • 07 - Java Sound API, Преобразование Аудиофайлов.
  • Глава 01: Введение в Java Sound API
  • Глава 11: Воспроизведение, запись и редактирование MIDI-последовательностей
  • Глава 12: Синтезирование звука
  • Глава 14: Предоставление сервисов Sampled-Audio
  • Карта сайта

Наверх

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

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