新聞中心
java共享內(nèi)存的問題,如何存,取共享數(shù)據(jù)
而如果采用共享內(nèi)存的方式,則可以直接通過共享內(nèi)存查看對象的狀態(tài)數(shù)據(jù)和統(tǒng)計(jì)數(shù)據(jù),從而減少了一些不必要的麻煩。
創(chuàng)新互聯(lián)公司專注于靈臺(tái)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供靈臺(tái)營銷型網(wǎng)站建設(shè),靈臺(tái)網(wǎng)站制作、靈臺(tái)網(wǎng)頁設(shè)計(jì)、靈臺(tái)網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造靈臺(tái)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供靈臺(tái)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
java實(shí)現(xiàn)共享數(shù)據(jù)可以將這些要共享的數(shù)據(jù)封裝到一個(gè)類里并且用靜態(tài)static修飾,當(dāng)其他類要使用這些變量時(shí),只需用這個(gè)類的類名.變量名即可。
我找到的辦法是使用MappedByteBuffer的方法映射一個(gè)文件,實(shí)現(xiàn)內(nèi)存共享。
樓上說的是,所謂的數(shù)據(jù)共享,就是你放在那里,他不變,但是你遞增的話,他指向新的地址值,并沒有改變原來的常量池里面的數(shù)據(jù)本身。
樓主,這個(gè)是WINDOW中吧,需要使用JNI、或JNA操作,會(huì)WIN32 API編程,就很容易使用JNI的了,另外在WIN7下需要權(quán)限。。
Java中MappedByteBuffer共享內(nèi)存的問題,如何將一個(gè)Map共享?求解
我找到的辦法是使用MappedByteBuffer的方法映射一個(gè)文件,實(shí)現(xiàn)內(nèi)存共享。
直接緩沖區(qū) java內(nèi)部是使用 DirectByteBuffer 來實(shí)現(xiàn)的。 堆緩沖區(qū)java內(nèi)部是使用 HeapByteBuffer 來實(shí)現(xiàn)的。映射的字節(jié)緩沖區(qū)(MappedByteBuffer ) 不提供關(guān)閉或銷毀方法。
除了上面提到的Socket之外,當(dāng)然首選的IPC可以使用Rmi,或者Corba也可以。另外Java nio的MappedByteBuffer也可以通過內(nèi)存映射文件來實(shí)現(xiàn)進(jìn)程間通信(共享內(nèi)存)。
共享內(nèi)存在java中的實(shí)現(xiàn) 在jdk4中提供的類MappedByteBuffer為我們實(shí)現(xiàn)共享內(nèi)存提供了較好的方法。該緩沖區(qū)實(shí)際上是一個(gè)磁盤文件的內(nèi)存映像。
java可以和c++共享內(nèi)存文件嗎
JNI是Java Native Interface的縮寫,中文為JAVA本地調(diào)用。使用JNI可以很方便的用我們的Java程序調(diào)用C/C++程序。
能,直接通過tcp就可以了,最近剛好用zeromq做了一個(gè)由java傳輸一個(gè)json格式的字節(jié)到C++項(xiàng)目里轉(zhuǎn)換成C++對象處理,再返回個(gè)Java。C++和C的zeromq配置是相差不大的。
對應(yīng)UNIX系統(tǒng)來說,共享內(nèi)存分為一般共享內(nèi)存和映像文件共享內(nèi)存兩種,而對應(yīng) Windows,實(shí)際上只有映像文件共享內(nèi)存一種。所以java應(yīng)用中也是只能創(chuàng)建映像文件共享內(nèi)存。
樓主,這個(gè)是WINDOW中吧,需要使用JNI、或JNA操作,會(huì)WIN32 API編程,就很容易使用JNI的了,另外在WIN7下需要權(quán)限。。
這個(gè)是可以的,因?yàn)橛谢旌暇幊踢@個(gè)概念的,兩者只要環(huán)境在就可以了,程序就是為實(shí)現(xiàn)功能的。
當(dāng)前標(biāo)題:java共享內(nèi)存代碼 java c++ 共享內(nèi)存
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/degohes.html