Философия, лежащая в основе Akka/Scala Future, заключается в том, что когда мы находим блокирующую часть кода, такую как вызов IO, сетевой вызов и т. д. мы должны завершить его в будущем и асинхронно получить результат через некоторый момент времени. Но блокирующая часть кода, которая ранее блокировала основной поток, теперь блокирует в отдельном потоке, в котором поддерживается будущее. то, что Akka/Scala Future покупали нас.Блокирующий код, заключенный внутри Akka Future, также блокирует поток, поддерживаемый Future, тогда как будущее полезно в этом случае
val blockingCallResult: Result = block() //blocks the thread of execution.
now let's use Akka/Scala future and wrap the blocking call with Future
val future = Future[Result] {
val blockingCallResult: Result = block() //also blocks on some thread in thread pool
blockingCallResult
}
Как мы получаем выгоду от использования будущего.
На данный момент мотивация для этого вопроса неясна. Вам действительно сказали, что ** только ** преимущество будущего - это нерестование рабочих? Вы взглянули на ['Future' API] (http://www.scala-lang.org/api/2.11.2/#scala.concurrent.Future)? –
@ TheTerribleSwiftTomato ... Являясь новичком ко всем этим понятиям. Пожалуйста, помогите мне и исправьте меня, если я буду похож на «глупо». в любом случае это не что-то будущее? я все еще не могу понять, как будущее обрабатывает блокирующие вызовы, чтобы сделать его не блокирующим и избежать ожидания, блокируя, потому что если будущее поддерживается опросом нитей, то какой-то или другой поток блокируется при выполнении вызовов IO (если IO не является блокируя, как тот, который предлагает Акка). это не правда?. Почему мы говорим, что будущее помогает в создании кода. Не блокируется, а не только асинхронно. – pamu
Нет, вы не говорите глупо, задавая вопросы об основных понятиях, это полностью действительный (если не используется) способ продвижения. В этот момент, чтобы ответить, я хотел бы попросить вас предоставить источники заявлений, на которые вы ссылаетесь. Это позволит мне (или кому-либо еще) просматривать вопросы в контексте этих источников. –