线程隔离调用和信号量隔离调用之间的区别
Difference between thread-isolated and semaphore-isolated calls
我正在浏览 Netflix 开源功能 Hystrix...
我看到了一个声明
"Today tens of billions of thread-isolated, and hundreds of billions of semaphore-isolated calls are executed via Hystrix every day at Netflix"
想知道这些不同类型的调用之间的区别..
首先我们要了解线程和信号量的区别。通常,由于开销,调用线程比信号量更昂贵。所以对于大量的requests/second,那么semaphore就可以考虑了。
其次使用信号量,命令将在调用者的线程内执行。这意味着并发调用与其他调用没有完全隔离(不像使用线程时那样)。
最后,对于semaphore,超时的时候是无法终止的(除非你专门设置)。如果您不知道客户的行为是什么,那么这将不是一件好事。
我正在浏览 Netflix 开源功能 Hystrix... 我看到了一个声明 "Today tens of billions of thread-isolated, and hundreds of billions of semaphore-isolated calls are executed via Hystrix every day at Netflix"
想知道这些不同类型的调用之间的区别..
首先我们要了解线程和信号量的区别。通常,由于开销,调用线程比信号量更昂贵。所以对于大量的requests/second,那么semaphore就可以考虑了。
其次使用信号量,命令将在调用者的线程内执行。这意味着并发调用与其他调用没有完全隔离(不像使用线程时那样)。
最后,对于semaphore,超时的时候是无法终止的(除非你专门设置)。如果您不知道客户的行为是什么,那么这将不是一件好事。