|
|
1
1
你一定要检查一下 jni documentation about threading ,其中包含有关将多个本机线程附加到JVM的信息。此外,您还应该考虑需要使用的映射实现。如果从多个Hashtable进行访问可以工作,但可能会带来瓶颈,因为它在每次调用时都是同步的,这实际上意味着一次只能读取或写入一个线程。考虑CONCURNESHASMAP,它使用锁条带和提供器更好的并发吞吐量。 如果你担心瓶颈和延迟,需要考虑两件事。 |
|
|
2
0
纯Java要求您编写自己的线程。 如果您通过web服务与java通信,那么web容器很可能会为您管理线程。 我猜您正在使用JNI,因此情况可能更复杂。根据JNI调用的具体方式,您可以在JVM中的多个线程上进行调用。 我得问问。。。JNI非常粗糙且容易出错,很容易破坏整个过程并产生各种各样的神秘错误。没有包含哈希表的C库可以使用吗?甚至写一个,这一定比做JNI要少。 |
|
|
3
0
创建一个Java守护进程,该进程与存储进行通信,存储在请求的内部线程化,以确保高效的负载处理。使用java.util.concurrent.Executors创建的单个ExecutorService为存储/检索操作的工作队列提供服务。每个存储/检索方法调用都向工作队列提交一个可调用的方法,并等待它运行。ExecutorService将自动对存储/检索操作进行排队和多线程处理。除了与C程序的通信之外,整个过程应该少于100行代码。 您可以使用进程间通信技术(可能是套接字)从C与这个Java守护进程通信,这将避免JNI,并让一个Java守护进程线程为C程序的多个实例提供服务。 或者,您可以使用JNI调用守护进程上的基本存储/检索操作。与当前相同,只是java守护进程可以修饰方法,以提供缓存、同步和与线程相关的各种新奇事物。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |