草庐IT

Tread多线程

全部标签

java - 两个ExecutorServices可以共享一个线程池吗?

我有一组记录要处理,处理可以并行进行,所以我创建了一个ExecutorService(通过Executors#newCachedThreadPool())。单个记录的处理本身由可并行化的步骤组成,因此我想使用另一个ExecutorService。有没有一种简单的方法可以让这个新的使用相同的底层线程池?它甚至是可取的吗?谢谢。 最佳答案 回答您的问题:不,两个ExecutorService对象不能共享一个线程池。但是,您可以在对象之间共享一个ExecutorService,或者根据需要创建多个Executor,但不太推荐这样做。最佳解

java - 为什么线程 "main"java.lang.NoClassDefFoundError :? 中出现异常

我通过Eclipse运行我的软件。昨天一切都很好。我没有更改代码,但今天,当我尝试再次运行它时,我收到以下错误消息:Exceptioninthread"main"java.lang.NoClassDefFoundError:coloredtrails/CTListenerattest.DemoPlayer1.createAndShowGUI(DemoPlayer1.java:23)attest.DemoPlayer1.main(DemoPlayer1.java:39)Causedby:java.lang.ClassNotFoundException:coloredtrails.CTLi

java - 将参数传递给 Java 线程

Threadt=newThread(newRunnable(){publicvoidrun(){}});我想用这种方式创建一个线程。如果可能,如何将参数传递给run方法?编辑:为了使我的问题更具体,请考虑以下代码段:for(inti=0;i根据Jon的回答,它不会起作用,因为i没有声明为final。 最佳答案 不,run方法从来没有任何参数。您需要将初始状态放入Runnable。如果您使用的是匿名内部类,则可以通过final局部变量来实现:finalintfoo=10;//OrwhateverThreadt=newThread(ne

Java停止线程从类运行的所有线程

我需要做的是能够停止从一个实现可运行的线程类运行的所有线程。这就是我的意思:这是我的“线程”类的开始:publicclassHTTPextendsThread{intthreadNumber;Stringhost;intport;inttimeLeft;privateBufferedReaderLocalBufferedReader;publicHTTP(intthreadNumber,Stringhost,intport,inttimeLeft){this.threadNumber=threadNumber;this.host=host;this.port=port;this.tim

java - java中的Executor服务-->如何将单线程代码转换为使用executor

如果这个问题听起来很愚蠢,请原谅我——我才刚刚开始使用Executor。我有一个以这种方式使用线程的现有Java应用程序——基本上使用独立线程——privateThreadspawnThread(){Threadt=newThread(){StringtaskSnap=task.toString();publicvoidrun(){try{println(task.run(null));}catch(InterruptedExceptione){println("ITC-"+taskSnap+"interrupted");}}};returnt;}从上面可以看出,该函数返回一个新线程。

QTCPSOCKETCOCT或QSSLSOCKETCOCT是否会自动创建用于读取/写作的线程?

尽管不使用std::thread或者QThread在任何地方,仍然遇到以下问题:始终来自QT的运行时调试错误日志:Qobject::Connect:不能排队的“Qabstractsocket”类型的参数(确保使用QRegisterMetatype()注册“Qabstractsocket::SocketError”。间歇性崩溃TcpSocket::flush()方法;我使用这种方法来确保立即编写TCP;现在有时,该应用程序完全通过此方法崩溃SIGPIPE在搜索互联网时,发现人们建议解决第一问题(即元错误),我需要使用qRegisterMetaType(),当我们有多个线程时。相同的多线程也称为第

Java多线程读取单个大文件

对于Java多线程应用程序,许多线程必须读取完全相同的文件(大小>1GB)并将其公开为输入流的有效方法是什么?我注意到如果有很多线程(>32),系统就会开始争用I/O并且有很多I/O等待。我考虑过将文件加载到一个由所有线程共享的字节数组中——每个线程都会创建一个ByteArrayInputStream,但分配一个1GB的字节数组效果不佳。我还考虑过使用单个FileChannel,每个线程使用Channels.newInputStream()在其上创建一个InputStream,但似乎是FileChannel维护了InputStream的状态。 最佳答案

java - Java MessageFormat 类线程安全吗? (相对于 SimpleDateFormat)

我知道SimpleDateFormat和NumberFormat不是线程安全的。http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4101500但是其他格式类(如MessageFormat)呢?Fortify360将“MessageFormat.format(String,Object...)”静态方法的使用标记为“竞争条件-格式缺陷”问题,但是当我分析MessageFormat的源代码时,我看到在该方法中,它创建了MessageFormat本身的新本地实例。JavaMessageFormat类线程安全吗?

java - 从自身中断线程

我不明白为什么线程自身中断时不抛出InterruptedException。我正在尝试使用以下代码段:publicclassInterruptTest{publicstaticvoidmain(String[]args){MyThreadt=newMyThread();t.start();try{t.join();}catch(InterruptedExceptionex){ex.printStackTrace();}}privatestaticclassMyThreadextendsThread{@Overridepublicvoidrun(){Thread.currentThrea

java - Spring 是否使 SecurityContext 可用于执行 Hystrix 命令的线程

我正在运行一个springboot应用程序,并且刚刚开始从spring-cloud-netflix集成Hystrix。我正在使用@HystrixCommand来包装使用假客户端进行的服务到服务调用。@HystrixCommand(fallbackMethod="updateThingFallback")defupdateRemoteThing(thingResourceClient:ThingResourceClient,thing:Thing){thingResourceClient.updateThing(thing)//Callusingfeignclient}这个假装客户端使用