草庐IT

【JavaEE】线程池

全部标签

java - 你如何使用事件调度线程?

我了解到swing不是线程安全的。深入研究,我发现对swing组件的每次修改都必须在事件调度线程上完成,以防止与多线程相关的各种问题。然而,信息似乎就此止步了。似乎没有很好的教程来解释如何在Internet上的任何地方执行此操作。将发布的代码中与其他问题相关的信息拼凑在一起,似乎我必须在我的程序中的每个swing修改周围放置一个不整洁的代码块(就像我自己代码中的这个例子):try{SwingUtilities.invokeAndWait(newRunnable(){publicvoidrun(){setTitle("Frametitle");setDefaultCloseOperati

java - 在自己的线程中运行的 Spring Bean

在我的Web应用程序中,我尝试使用JavaSDK7WatchService创建一个目录轮询bean。我想要实现的是在它自己的线程中运行这个bean,这样它就不会阻塞应用程序。像这样的东西: 最佳答案 恐怕您将不得不使用Spring手动创建此线程:WatchServiceRunnableWrapper很简单:publicclassWatchServiceRunnableWrapperimplementsRunnable{privateWatchServiceWatchService;publicWatchServiceRunnable

java - 线程安全 - 传递给线程的最终局部方法变量?

如果此方法的变量“commonSet”改为类级字段,以下代码是否会导致同样的问题。如果它是一个类级别的字段,我将不得不在一个同步块(synchronizedblock)中将添加到集合操作包装起来,因为HashSet不是线程安全的。我是否应该在下面的代码中做同样的事情,因为多个线程正在添加到集合中,甚至当前线程可能会继续改变集合。publicvoidthreadCreatorFunction(finalString[]args){finalSetcommonSet=newHashSet();finalRunnablerunnable=newRunnable(){@Overridepubl

java - 是否可以从堆转储中的 hprof 转储/线程查看线程

我有一个大的(5GB)hprof转储,它是在OutOfMemoryError发生时由应用程序创建的。(使用XX:HeapDumpOnOutOfMemoryError)。不幸的是,发生此错误时没有收集日志。重新创建它需要几个小时。我希望是否有一些工具可以显示来自hprof的异常堆栈跟踪或所有线程堆栈等。我目前正在使用MAT,看不到获取线程信息的方法。我可以使用哪个工具?(不知道hprof文件有没有OOM时线程/调用位置的信息)(我确实知道在正常情况下如何进行线程转储。这里的问题是事件已经发生,我只有hprof转储。) 最佳答案 回答自

Java 线程池 - 线程正在更新吗?

我的Java.NIO套接字服务器中有一个线程池。我有时会收到运行时错误,例如Connectionresetbypeer或BrokenPipe等。我的问题是:抛出异常时线程是否被杀死?如果是-是否在线程池中创建了一个新线程来代替被杀死的线程??这是我的线程管理器:importjava.nio.channels.SocketChannel;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassThreadsManager{privateExecutorServic

java - 即使在它们的父线程死亡或终止之后,子线程如何仍然执行?

这是我的两个类:publicclassFirstclass{publicstaticvoidmain(Stringargs[])throwsInterruptedException{System.out.println("Mainstart....");Secondclasst1=newSecondclass();t1.setName("FirstThread");Secondclasst2=newSecondclass();t2.setName("SecondThread");t1.start();t2.start();System.out.println("Mainclose...

java - tomcat 6线程池异步处理

简短的问题:在Tomcat6应用程序中-我如何运行(单独的)线程池?运行线程池的最佳解决方案是什么?长问题:我这里有一个简单的需求;轮询数据库以获取某些数据,同时允许Web客户端等待答案(长轮询连接)。当该数据在数据库中可用时,我会向相关客户发送回复。话虽如此,我宁愿目前不深入研究任何框架(quartzscheduler也许吧?)。因此,正如我得出的结论,我需要一个线程池来在后台完成这项工作。那么如果我要使用Thread(实际上是Runnable),哪个类可以组织这一切?有排序吗ThreadPool解决方案?有什么推荐吗? 最佳答案

java - 如何将参数传递给java中已经运行的线程?

如何在java中将参数传递给已经运行的线程——而不是在构造函数中,并且可能不使用wait()(可能??)类似于HowcanIpassaparametertoaJavaThread?中的评论Doyoumeanpassingaparametertoanalreadyrunningthread?Becauseallthecurrentanswersareaboutpassingparameterstonewthreads...–ValentinRocherMay18'09at10:43[编辑]是的,我一直在寻找类似于生产者/消费者模式的东西。我想要一个类似线程的东西,其中有处理并准备就绪用于

java - Spring单例线程安全

如果我在下面定义了一个Java类,它通过依赖注入(inject)注入(inject)到我的Web应用程序中:publicAccountDao{privateNamedParameterJdbcTemplatenjt;privateListaccounts;publicAccountDao(Datasourceds){this.njt=newNamedParameterJdbcTemplate(ds);refreshAccounts();}/*calledatcreation,andthenviaAPIcallstoinformservicenewusershavebeenaddedto

java - 每个请求模型的线程能否比非阻塞 I/O 更快?

我记得2或3年前读过几篇文章,其中人们声称现代线程库变得如此出色以至于每个请求线程服务器不仅比非阻塞服务器更容易编写,而且它们会也更快。我相信这甚至在Java中通过将Java线程映射到pthread的JVM进行了演示(即Javanio开销超过了上下文切换开销)。但现在我看到所有“尖端”服务器都使用异步库(Javanio、epoll,甚至node.js)。这是否意味着异步赢了? 最佳答案 我认为不是。如果两种模型都得到很好的实现(这是一个很大的要求),我认为NIO的概念应该占上风。计算机的核心是内核。无论您做什么,您都无法将应用程序并