我刚接触Thrift,最近开始使用JNI。
据我理解,Thrift为您提供了在不同语言之间定义接口的工具(如果我错了,请纠正我)。根据我的经验,JNI似乎也可以在Java和C++之间执行类似的任务。
我想知道是否可以使用Thrift来执行我目前在JNI中执行的任务。如果可以,我应该在什么任务上使用Thrift,在什么情况下应该使用JNI?
谢谢!
我刚接触Thrift,最近开始使用JNI。
据我理解,Thrift为您提供了在不同语言之间定义接口的工具(如果我错了,请纠正我)。根据我的经验,JNI似乎也可以在Java和C++之间执行类似的任务。
我想知道是否可以使用Thrift来执行我目前在JNI中执行的任务。如果可以,我应该在什么任务上使用Thrift,在什么情况下应该使用JNI?
谢谢!
当你在不同进程之间通信时,应该使用thrift或类似的RPC库。当在同一进程中传递Java和C方法调用时,可以使用JNI。使用thrift的成本大约是使用JNI的10-100倍,具体取决于你正在做什么,因此只有在无法使用JNI时才会使用它。