我确实拥有大量线程和线程池的Java应用程序。我们可以使用AKKA来替换线程和线程池吗?
答案 0 :(得分:2)
这取决于你的线程在做什么。他们是否正在阻止IO或采取锁定并在他们之间共享可变数据?如果是这样,akka可能不太合适,因为演员通常应该避免阻止io或锁定。另一方面,如果线程做隔离的非阻塞工作,并且可以通过消息传递进行通信,那么akka可能是一个不错的选择。
答案 1 :(得分:2)
是的,你绝对可以。请注意上述海报的回复。这不完全准确。演员可以阻止I / O.您只需使用子actor来表示每个阻塞连接。新手的错误就是以对待线程的方式对待演员......在这种情况下,上面答案的海报是正确的。但是,如果你将阻塞传递给较低的角色并且每次都使用一个特殊的角色,你将永远不必阻止主要的吞吐量。
但是,请原谅我。我走错了路。简而言之,是的,你可以。但请记住,会有一个学习曲线。演员编程是一种不同的范例,需要稍微改变一下。
但是,使用actor编程并发比使用线程和锁定(字面意思)更容易。只是让你的应用程序被动而不是基于时间,许多并发问题就会停止存在。
查看其网站上的AKKA文档。他们非常彻底。还有书籍Akka并发和有效的Akka。只需将他们放在桌面上作为参考。