Вы могли рассмотреть php открывающий тэг php-только для файлов как своего рода строка хижины (как #!/bin/bash), таким образом, Вам не нужен закрывающий тэг.
Мы следуем стандарту ZF также, никакому закрывающему тэгу php-только для файлов. Но я никогда не слышал ни о каком инструменте, который не мог проанализировать файл из-за недостающего закрывающего тэга, и я не вошел ни в какие проблемы на данный момент для того, чтобы не использовать его.
Способ действий участников - это не совместное использование ресурсов. Обеспечьте весь доступ к одному Актеру, чья работа состоит в том, чтобы иметь дело с доступом к совместно используемому ресурсу.
Таким образом, сам ресурс не разделяется между потоками. Актер.
Это может быть плохой стиль, но один из способов - смешать императивный и функциональный стили, попросив вашего актера (для которого требуются соединения) подключить пул соединений напрямую и использовать синхронизацию для получения Подключение
. Честно говоря, я действительно не вижу, что не так в этом подходе; Я предпочитаю его !!
или !?
, который просто кричит deadlock (или даже livelock )!
Я предполагаю, что еще один способ - отправить сообщение в ваш пул, в котором описывается работа, которая должна быть выполнена с подключением, и возможная цель для результата:
class DbWork(f: Connection => Unit)
class DbWorkWithResult[T](f:Connection => T, target: OutputChannel[Any])
И затем вы можете использовать его так:
pool ! new DbWork( { (conn: Connection) => //do something
})
Или:
pool ! new DbWorkWithResult[Int]( (conn: Connection) => //return int
}, self)