`

AbstractCharsetProvider.charsetForName thread BLOCKED

    博客分类:
  • JAVA
阅读更多

最近一个项目机器突然报警,上去kill -3后发现有100多个线程blocked在AbstractCharsetProvider.charsetForName这里。放狗搜之,发现原来这个问题已经被报告给sun 的bug库了。有解决方案在openjdk上了,但是正式jdk还没有。故把这个bug记录下,方便以后的人遇到也不用google很久了。

 

https://issues.apache.org/jira/browse/TIKA-471   已经有人遇到同样的问题

 

sun bug库 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6790402

 

注意这里最重要的收获在于:

 

Please also note that the current implementation of sun.nio.cs.FastCharsetProvider.charsetForName()


uses a JVM-wide lock and is called very often (e.g. by new String(byte[] data,String encoding)).


This JVM-wide lock means that Java applications do not scale beyond 4 CPU cores.

分享到:
评论
1 楼 RednaxelaFX 2010-09-20  
嗷,土人立功了~

相关推荐

    im.rar_Blocked_induction motor

    标题中的"im.rar_Blocked_induction motor"暗示了我们讨论的主题是关于感应电机,特别是阻塞转子测试。在这个主题中,我们将深入探讨感应电机的工作原理、无负载测试以及阻塞转子测试的重要性和实施方法。 感应电机...

    tc_skbedit.rar_Blocked_tc skbedit

    The blocked_hash is used to find POSIX lock loops for deadlock detection. It is protected by blocked_lock_lock.

    OH操作系统基础:Thread多线程.pptx

    3. 阻塞(Blocked):线程不在就绪队列中 4. 退出态(Dead):线程运行结束,等待系统回收资源 Thread状态迁移: 1. 就绪态→运行态:任务创建后进入就绪态,发生任务切换时,就绪队列中最高优先级的任务被执行 2....

    后端JAVA虚拟机JVM调优必备工具

    IBM Thread and Monitor Dump Analyzer for Java专业JVM调优工具 一、使用方法 1.使用java -jar启动程序 2.找到需要分析的jvm进程 3.使用jstack [pid] > /tmp/sdapjvmlog.txt导出进程的详细日志 4.使用程序打开...

    Webuser__AcWebuser__Access_any_blocked_website.pdfcess_any_blocked_website

    Webuser__AcWebuser__Access_any_blocked_website.pdf cess_any_blocked_website

    java_Thread.rar_java thread runable_thread runable

    线程的生命周期包括新建(New)、就绪(Runnable)、运行(Running)、等待/阻塞(Blocked)和终止(Terminated)五个状态。`start()`方法将线程从新建状态转变为就绪状态,当JVM分配到CPU时间片时,线程进入运行...

    JStack和Java Thread Dumps分析

    25 java.lang.Thread.State: BLOCKED (on object monitor) 26 at java.lang.Object.wait(Native Method) 27 - waiting on <0x00000000c2002180> (a MyThread) 28 at MyThread.run(MyThread.java:10) 29 - locked ...

    jstack生成的Thread Dump日志.docx

    - **Blocked**:线程被阻塞,通常是因为等待资源或锁,当线程长时间无法获取所需资源时,会进入此状态。可能的原因包括IO等待、同步锁争抢等。 - **Waiting on condition**:线程等待某个条件满足或资源释放。...

    操作系统实验报告-时钟原语.docx

    在本实验中,我们需要在 thread.h 文件中添加一个新的成员变量 ticks_blocked 用来记录 thread 被阻塞了多久。同时,我们还需要在 thread.c 文件中修改 thread_create 函数,添加变量 ticks_blocked,并使得 ticks_...

    Thread Dump Analyzer

    3. **阻塞态(Blocked)**:线程正在等待获取一个锁,或者调用synchronized方法或块。 4. **睡眠态(Timed Waiting)**:线程正在等待一段时间,如调用了`Thread.sleep()`。 5. **终止态(Terminated)**:线程已经...

    corsyusha:简单快速的代理,可在针对现有API进行原型设计时绕过CORS问题,而不必担心CORS

    has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch ...

    操作系统课程设计报告:实验三 Pintos线程管理【Pintos Project 1: Threads】

    Pintos线程管理是通过优先级调度、线程blocked状态、线程unblock、线程调度、timer_interrupt函数、thread_foreach函数、blocked_thread_check函数、thread_cmp_priority函数、线程yield、线程初始化和测试驱动开发...

    Your page is blocked due to a security的解决方案

    关于Your page is blocked due to a security的解决方案

    Java课件\thread.rar

    - 阻塞(Blocked):线程正在等待获取锁、等待I/O操作完成或其他阻塞条件。 - 等待(Waiting):线程通过`wait()`、`join()`或`Object.wait()`进入无限期等待状态。 - 定时等待(Timed Waiting):线程通过`sleep...

    Android代码-BlockCanaryEx

    a library for android which can help you to find heavy methods in your code when your app blocked, base on BlockCanary. What's the difference between BlockCanaryEx and BlockCanary BlockCanaryEx ...

    node-blocked, 检查事件循环是否已经被阻止.zip

    node-blocked, 检查事件循环是否已经被阻止 块检查 node 事件循环是否被阻止。如果运行 node.js ,你可以使用非常类似的阻止阻塞函数,从而使用非常类似的阻止阻塞函数。安装$ npm install blocked描述blocked() ...

    线程thread demo

    线程的状态管理也非常重要,包括新建(New)、可运行(Runnable)、运行中(Running)、等待/阻塞(Blocked)、等待(Waiting)和终止(Terminated)。通过`Thread.currentThread().getState()`可以获取当前线程的...

    blocked.certs

    blocked.certs

Global site tag (gtag.js) - Google Analytics