在我的代码中,这个 setMultiLegNetQuote() 方法在一个线程中,然后如果您看到突出显示的块,它正在调用另一个线程..
我的问题是..
(1) 第一个线程被调用如下......
Thread t = custStreamerMap.get(mmsg.getCustomerId());
if (null != t) {
return t.setQuote(mmsg.getMessageBody());
}
在这种情况下,线程运行方法是否在我们创建 thred 对象时被调用,但我们直接调用 t.setQuote(mmsg.getMessageBody());
synchronized int setQuote(String multiLegData) {
NetQuoteTuple netQuoteTuple = new NetQuoteTuple();
if (some checking) {
netQuoteTuple.setSide(1);
} else if (some checking) {
netQuoteTuple.setSide(2);
}
netQuoteList.add(netQuoteTuple);
**dataBufferThread.setNetQuoteList(netQuoteList);
dataBufferThread.setCnt(20000);**
return 1;
}
(2) 然后 dataBufferThread 我的意思是从第一个线程调用第二个线程。当我们这样调用线程时,是否调用了第二个线程的run方法?
dataBufferThread.setNetQuoteList(netQuoteList) ??????????
然后这dataBufferThread.setCnt(20000);
在线程的情况下会做什么?这是一个以这种方式声明的 AtomicIntegerAtomicInteger cnt = new AtomicInteger(0)
这里实际上这个 dataBufferThread 和 Thread 都是单独的线程,运行方法扩展了 Thread ...
这就是我问我们是否为线程创建一个对象并访问它的某些方法的原因......是否调用了线程的运行方法?