胡安民 2022-05-04 10:33 采纳率: 50%
浏览 62
已结题

java的native方法是线程安全的吗

问题遇到的现象和发生背景

3g的文件,进行读写

我通过多线程操作RandomAccessFile,将一个文件分段去读写文件,每段20mb,一个线程进行处理

然后在使用单线程进行读写文件 ,发现单线程和多线程的速度差不多

然后我去看RandomAccessFile底层代码发现都是native方法

能否告知一下,为啥, RandomAccessFile进行多线程读写和RandomAccessFile进行单线程读写速度一样

  • 写回答

1条回答 默认 最新

  • CodeMartain 2022-05-04 12:18
    关注

    这个跟你的运行内存有关吧,线程多了,缓存越大,当缓存很大时虽然内存速度快,但是写入到硬盘上速度就降下来了,发生了IO阻塞,所以时候并不是线程越多速度越快;
    拿4核八线程来讲,开了16个线程,第一是内存中的缓存增加了,另一个写入到硬盘的速度是有瓶颈的,再加上IO阻塞等,所以1 -8 个线程速度实惠增加一些,但是超过之后速度提升并没有那么明显;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月12日
  • 已采纳回答 5月4日
  • 创建了问题 5月4日

悬赏问题

  • ¥15 STM32F103上电短路问题
  • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办