草庐IT

threaded-comments

全部标签

java - Thread Busy apache tomcat解压数据

我已经在tomcat中部署了应用程序,并且有很多线程很忙,没有像这样释放超过700个线程。我捕获了文件位于ufile.io/8zz1t上的thead转储,我使用fastthread.io阅读。你能检查一下你是否看到问题吗,我看到充气机有消耗cpu的线程。S188063346ms0KB0KB10.162.3.36172.30.100.163POST/ChiperService/rest/cs/DescifrarHTTP/1.1S280064346ms0KB0KB10.162.3.36172.30.100.163POST/ChiperService/rest/cs/DescifrarHTT

java - java "VM thread"是做什么的?

我使用jstack来输出线程信息。还有一个线程:“虚拟机线程”prio=10tid=0x0878b400nid=0x760a可运行这个线程是用来做什么的?它占用50%的CPU使用率和大部分CPU时间 最佳答案 VM线程定义here作为:ThisthreadwaitsforoperationstoappearthatrequiretheJVMtoreachasafe-point.Thereasontheseoperationshavetohappenonaseparatethreadisbecausetheyallrequirethe

java - 'Thread termination due to failure'指的是什么?

ExecutorService的javadoc有时会提到线程“由于失败”而终止的情况。但是,目前尚不清楚这指的是哪种故障。例如,singlethreadexecutor文档说ifthissinglethreadterminatesduetoafailureduringexecutionpriortoshutdown,anewonewilltakeitsplaceifneededtoexecutesubsequenttasks我本来以为这种情况可能发生在Exception的情况下,也可能是RuntimeException,但似乎并不是这样。运行以下代码似乎给出了相同的线程名称和线程ID。

Java Thread.sleep 最短时间

这个问题在这里已经有了答案:HowaccurateisThread.sleep?(3个答案)关闭5年前。TimeUnit.sleep(longtimeout)文档这样描述它的论点:timeout-theminimumtimetosleep.但是,我发现—至少在带有Java8update141的Windows764位上—线程hibernate的时间通常少于:publicstaticvoidmain(String[]args)throwsInterruptedException{finallongfrom=TimeUnit.MILLISECONDS.toNanos(100);finallo

java - 单例对象工厂 : is this code thread-safe?

我有一个用于许多单例实现的通用接口(interface)。接口(interface)定义了可以抛出检查异常的初始化方法。我需要一个工厂来按需返回缓存的单例实现,想知道以下方法是否线程安全?UPDATE1:请不要建议任何第三部分库,因为由于可能的许可问题,这将需要获得法律许可:-)更新2:此代码可能会在EJB环境中使用,因此最好不要产生额外的线程或使用类似的东西。interfaceSingleton{voidinit()throwsSingletonException;}publicclassSingletonFactory{privatestaticConcurrentMap>CACH

java - ORA-12519, TNS :no appropriate service handler found while inserting into Oracle Database with X threads

我正在尝试插入到具有两列的Oracle数据库中-IDPrimaryKeyvarchar2(4000)ACCOUNTvarchar2(4000)我为此编写了一个多线程程序。并且每个线程每次都使用uniqueid插入ID列,因为ID是主键。我在某些时候面临的唯一问题是-下面的代码在运行几秒钟后抛出以下异常。1)NullPointerException2)java.sql.SQLException:Listenerrefusedtheconnectionwiththefollowingerror:ORA-12519,TNS:noappropriateservicehandlerfound我无

java - Thread 在这里比 Executor 更受青睐吗?

据我了解,Executors有助于处理runnable的执行。例如。当我有几个工作线程完成它们的工作然后终止时,我会选择使用执行程序。执行者将处理创建和终止执行工作线程所需的线程。但是现在我面临着另一种情况。固定数量的类/对象应封装自己的线程。因此线程在创建这些对象时启动,线程将在这些对象的整个生命周期内继续运行。少数对象依次在程序开始时创建并在整个运行时存在。我想在这种情况下线程比执行器更可取,但是当我阅读互联网时,每个人似乎都建议在任何可能的情况下使用执行器而不是线程。有人可以告诉我这里是选择Executors还是Threads,为什么?谢谢 最佳答案

java - 我如何保证 Thread.sleep 至少 hibernate 那么长的时间?

根据thisquestion,Thread.sleep不一定保证在您指定的时间内hibernate:它可能更短或更长。如果您阅读Thread.sleep的文档,您会发现对于sleep的确切持续时间没有强有力的保证。它特别指出持续时间是subjecttotheprecisionandaccuracyofsystemtimersandschedulers这(有意)含糊但暗示不应过分依赖持续时间。特定操作系统上可能的hibernate持续时间的粒度由线程调度程序的中断周期决定。InWindows,thescheduler'sinterruptperiodisnormallyaround10o

java - Thread.yield() 之后线程的 Thread.State 是什么?

Thread.yield()之后线程的Thread.State是什么?它是Thread.State.WAITING吗?谢谢。 最佳答案 不,线程仍将在RUNNABLE中状态。请注意,RUNNABLE表示线程可以运行,并且可能正在运行或正在等待轮到它。Thread.STATE不区分当前正在执行的线程和准备运行的线程,它们都是RUNNABLE。一个线程只会进入WAITING调用wait()、join()或LockSupport.park()时的状态。调用Thread.yield()当前运行的线程自愿放弃其CPU时间片的方法。然后该线程从

java - Thread.join() 的 JDK 实现

我想知道Java是如何实现join()方法来等待线程完成的。根据sourcecode:publicfinalsynchronizedvoid[More...]join(longmillis)throwsInterruptedException{longbase=System.currentTimeMillis();longnow=0;if(millis调用线程在第1160行无限期地获取运行线程的监视器和wait(),同时运行线程仍然存在。我的问题是:当线程完成时,notify()或notifyAll()在哪里(以及谁调用),以便它唤醒调用线程?非常清楚,问题是关于在JDK/JVM中调用