草庐IT

【JavaEE】线程池

全部标签

java Timer TimerTask多线程

我正在使用Timer和TimerTask长时间轮询聊天应用程序的新消息。我想研究两种“略有”不同的可能性:1:定时器声明为局部变量publicListgetLastMessages(...){[...]Timertimer=newTimer(true);//**Timerdeclaredaslocalvariable**while(someCondiction){MessagesTimerTaskreturnMessagesTask=newMessagesTimerTask([...]);timer.schedule(returnMessagesTask,6000);synchroni

java - 使用 LinkedBlockingQueue 对多线程 java 程序足够好吗?

我有一个消费者和一个生产者,它们从队列中添加和删除Item对象。如果我使用put()和take()方法。我还需要解决任何线程安全问题吗?这类似于有界缓冲区问题,我只是想知道是否使用阻塞队列来代替对信号量或监视器的需求。Item对象本身可能需要同步(setter但getter不需要锁),对吗?最后,我不太确定如何测试它是否是线程安全的,因为我不能同时让两个线程调用take()因为执行顺序是不确定的。有任何想法吗?谢谢。 最佳答案 对于您正在做的事情,它是完全线程安全的,事实上这就是它的设计目的。BlockingQueue的说明(这是L

java - Spring DI 的线程安全影响

在我设计的示例中,关于teamMembers列表的线程安全有何影响?我能否依赖run()方法看到的列表状态保持一致?假设setATeamMembers方法仅在创建ATeamEpisodebean时由spring调用一次init方法在#1之后被spring(init-method)调用ATeamMember类是不可变的我是否需要声明teamMembersvolatile或类似的?我的这种方法还有其他可怕的问题吗俯瞰?如果这是显而易见的,或者rtfm的明显失败,我们深表歉意感谢和问候埃德packageaTeam;importjava.util.ArrayList;importjava.ut

Springboot+vue的政府管理的系统设计(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频:Springboot+vue的政府管理的系统设计(有报告)。Javaee项目,springbootvue前后端分离项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringBoot+Mybatis+Vue+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。界面简洁,操作简单。报告截图:

java - Java中的一种负载平衡线程池

我正在寻找一个负载平衡的线程池,但到目前为止没有成功。(不确定负载平衡是否是正确的措辞)。让我解释一下我试图实现的目标。第1部分:我有乔布斯,有8到10个单一任务。在6核CPU上,我让8个线程并行处理此任务,这似乎提供了最佳性能。当一项任务准备就绪时,另一项任务可以开始。一旦完成所有十项任务,就完成了完整的工作。通常一项工作在30到60秒内完成。第二部分:不幸的是,有时这项工作需要两个多小时。由于必须计算的数据量,这是正确的。糟糕的是,在job1运行时没有其他作业可以启动(假设所有线程具有相同的持续时间),因为它正在使用所有线程。我的第一个想法:有12个线程,最多允许三个作业并行。但是

java - 同时读取数组线程安全吗?

我有一个数组,其中包含如下声明的整数值:intdata[]=newint[n];每个值都需要处理,我将工作分成几部分,以便可以由单独的线程处理。该数组在处理过程中不会被修改。所有处理线程能否同时读取数组的不同部分?还是我必须使用锁?换句话说:这个工单是线程安全的吗?ArrayiscreatedandfilledThreadsarecreatedandstartedThread0readsdata[0..3]Thread1readsdata[4..7]Thread2readsdata[8..n] 最佳答案 由多个线程读取数组(或任何其

java - Glassfish 线程池、接受器线程、HTTP 最大连接数

请看附图,请帮助我理解线程池(最大和最小线程池大小)、接受器线程及其最大连接数和HTTP最大连接数之间的关系。线程池:HTTP:传输TCP: 最佳答案 先给大家一些官方文档线程池线程池是服务器可以同时处理的最大请求数。服务器有一个等待线程处理的连接队列。请记住,线程的请求生命周期会很长。也就是说,不仅在从套接字读取HTTP请求时,或在向客户端写入HTTP响应时,而且它一直在处理业务逻辑、等待DB完成、写入日志文件、发送/接收WS方法,...阅读:https://docs.oracle.com/cd/E18930_01/html/82

Java:异常类是线程安全的吗?

据我所知,Java的Exception类当然不是不可变的(initCause和setStackTrace等方法对此提供了一些线索)。那么它至少是线程安全的吗?假设我的一个类(class)有这样一个字段:privatefinalExceptionmyException;我可以安全地将这个字段暴露给多个线程吗?我不愿意讨论可能发生这种情况的具体案例以及原因。我的问题更多是关于原则:我能说一个暴露异常类型字段的类是线程安全的吗?另一个例子:classCustomExceptionextendsException{...}这个类是线程安全的吗? 最佳答案

java - 多线程应用程序的 JPA 原子查询/保存

我正在更改我的JPA代码以使用线程。每个线程都有一个单独的实体管理器和事务。我曾经拥有的(对于单线程环境)是这样的代码://getobjectfromtheentitymanagerXx=getObjectX(jpaQuery);if(x==null){x=newX();x.setVariable(foo);entityManager.persist(x);}在多线程环境中使用该代码我得到了重复的键,因为我假设getObjectX为一个线程返回null,然后该线程被换出,下一个线程调用getObjextX,也得到null,然后两个线程将创建并保留一个新的X()。如果不添加同步,是否有一

java - 如何停止线程池中的线程

我正在编写一个生成多个并发任务的应用程序。我正在使用线程池来实现它。可能会发生一个事件,使任务中正在进行的计算无效。在那种情况下,我想停止当前正在运行的任务,并开始新的任务。我的问题:如何停止当前正在运行的任务?我实现的解决方案是存储对任务线程的引用,并在该线程上调用interrupt()。在演示代码中:publicclassTaskimplementsRunnable{privateStringname;privateThreadrunThread;publicTask(Stringname){super();this.name=name;}@Overridepublicvoidru