Java 如何使用螺纹安全的螺纹内螺纹
有没有一种方法可以在线程内使用线程?如果是,如何以线程安全的方式使用它 我在线程内部尝试了这个线程,但有时我得到了错误的结果。请帮助我如何使用线程安全性找出线程内部的线程Java 如何使用螺纹安全的螺纹内螺纹,java,multithreading,thread-safety,pthreads,Java,Multithreading,Thread Safety,Pthreads,有没有一种方法可以在线程内使用线程?如果是,如何以线程安全的方式使用它 我在线程内部尝试了这个线程,但有时我得到了错误的结果。请帮助我如何使用线程安全性找出线程内部的线程 for(int i=0; i<numExpression; i++) { final int _i = i; final SDISQueryInfo _qryInfo = sdisQueryInfo; final SDISQueryComponent _qryComponent = qryComp
for(int i=0; i<numExpression; i++)
{
final int _i = i;
final SDISQueryInfo _qryInfo = sdisQueryInfo;
final SDISQueryComponent _qryComponent = qryCompoents;
TCreate[i] = new Thread(new Runnable()
{
public void run()
{
_qryComponent.prepare(_qryInfo);
}
});
TCreate[i].setName(_qryInfo.getQueryTerm(_i));
TCreate[i].start();
}
for(Thread t : TCreate)
{
t.join();
}
for(int i=0;i原则上从其他线程启动线程没有问题。线程之间没有真正的区别(可以说,没有父线程或子线程)
我不知道你说的“这个函数里面有一个线程…”是什么意思
我假设您的意思是它将启动另一个线程。这一点也不重要,当然,除非内部线程与其他线程共享信息。您必须查阅SDISQueryComponent的文档。准备以了解情况是否如此
我的期望是SDISQueryComponent可以使用线程,原因很简单,它的设计显然考虑了线程(或者它不会启动线程)
我在这里想到的最重要的一点是,您可能会遇到这样的情况:创建更多线程会产生争用(由于上下文切换开销,可能还有锁定),从而使事情变得缓慢
在这种情况下,通常的解决方案包括一个线程池和一个工作队列。但是,我不知道SDISQueryComponent是否支持使用线程池,所以这可能不在您的掌握之中。@sehe听起来像一个SEO问题:))线程中的线程。。。。《盗梦空间》?我想你误解了我所说的。。。我提到的函数也由线程组成。。但它正在发挥作用,但并不一致。所以我不知道为什么会发生这种情况。谢谢你宝贵的时间。在这里,我上面提到的线程代码运行良好。。如果我在该函数中添加线程,结果有时是正确的,有时则不显示正确的结果(不一致)。。让我再添加函数代码。。,