|
|
1
3
最后一点:“我想反应性的主要点是有效的线程利用率,这正是我要问的。”这正是反应性方法的设计目的。
作为一个例子,假设您多次从服务器请求数据。 以典型的非反应式方式,您将为每个请求创建/使用多个线程(可能来自线程池)。而一个特定线程的工作只是为那个特定的请求服务。线程将接收请求,将其提供给服务器并等待其响应,直到从服务器获取数据,然后将该数据带回客户端。 现在,以一种被动的方式,一旦有请求,就会为它分配一个线程。现在,如果出现另一个请求,则不会创建另一个线程,而是由同一个线程提供服务。怎么用? 线程在向服务器接收请求时,不会等待服务器的任何即时响应,而是返回并服务于其他请求。 现在,当服务器搜索数据并且它可以与服务器一起使用时,将引发一个事件,然后线程将去获取该数据。这称为事件循环机制,因为在数据可用时调用线程的所有工作都是通过调用事件来实现的。 现在,它被赋予了将精确响应映射到请求的复杂性。 所以整个过程都是无阻塞的。由于只有一个线程可以满足所有的请求,因此不会有线程切换,我们可以为每个CPU内核提供一个线程。从而实现线程的有效利用。
|