2012-11-19 9 views
6

Ich bin gerade auf Thrift gestoßen und habe kürzlich angefangen mit JNI zu spielen.Könnten Sie Apache Thrift anstelle von JNI verwenden?

Von dem, was ich verstehe, bietet Thrift Ihnen die Tools, um Schnittstellen zwischen verschiedenen Sprachen zu definieren (korrigieren Sie mich, wenn ich falsch liege). JNI scheint nach meiner Erfahrung einen ähnlichen Job zwischen Java und C++ zu machen.

Ich habe mich gefragt, ob ich Thrift verwenden könnte, um die Aufgaben zu erledigen, die ich gerade in JNI mache. Wenn ja, für welche Aufgaben sollte ich Thrift verwenden und wann sollte ich JNI verwenden?

Danke!

Antwort

6

Sie sollten Sparsamkeit oder ähnliche RPC-Bibliothek verwenden, wenn Sie zwischen verschiedenen Prozessen kommunizieren. Sie können JNI verwenden, wenn Sie Methodenaufrufe zwischen Java und C im selben Prozess übergeben. Die Kosten für die Verwendung von Sparsamkeit sind ungefähr 10 - 100x höher als die Verwendung von JNI, je nachdem, was Sie tun, warum würden Sie es nur verwenden, wenn Sie JNI nicht verwenden können.