无法在java线程内创建for循环-为什么?
我的代码如下无法在java线程内创建for循环-为什么?,java,multithreading,Java,Multithreading,我的代码如下 public void incomingMessageThread() throws FileNotFoundException, IOException { new Thread() { BuildData a = new BuildData(); for(int i = 0; i<100; i++) { a.parseDataFile("_"+i+"/outgoingMessages
public void incomingMessageThread() throws FileNotFoundException, IOException
{
new Thread()
{
BuildData a = new BuildData();
for(int i = 0; i<100; i++)
{
a.parseDataFile("_"+i+"/outgoingMessages");
}
}.start();
}
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
BuildData a=新的BuildData();
for(inti=0;iThread是一个类而不是一个函数(这是您上面的语法类似的密室)
你的代码应该是
class MyThread : public Thread {
public void run() {
// code
}
}
Thread t = new MyThread();
t.run()
Thread是一个类而不是一个函数(这是您上面的语法所类似的)
你的代码应该是
class MyThread : public Thread {
public void run() {
// code
}
}
Thread t = new MyThread();
t.run()
您正在类内部和方法外部使用语句
从forThread.run
:“线程的子类应重写此方法。”
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
公开募捐
{
BuildData a=新的BuildData();
对于(inti=0;i,您在类内部和方法外部使用语句
从forThread.run
:“线程的子类应重写此方法。”
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
新线程()
{
公开募捐
{
BuildData a=新的BuildData();
对于(int i=0;i您应该编写类似的内容(实现void run())
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
线程t=新线程()
{
公开募捐
{
BuildData a=新的BuildData();
对于(int i=0;i您应该编写类似的内容(实现void run())
public void incomingMessageThread()抛出FileNotFoundException、IOException
{
线程t=新线程()
{
公开募捐
{
BuildData a=新的BuildData();
对于(int i=0;i应该是t.start()而不是t.run(),他试图使用匿名内部类。应该是t.start()而不是t.run())他试图使用匿名内部类。通常,最好将Runnable
传递到Thread
构造函数中,而不是尝试对复杂的类进行子类化。遵循格式约定也是一个好主意。顺便说一句:您可能需要找到一种不同的方法来处理异常。您可能需要直到方法返回后,才发现文件丢失。谢谢,这只是一些处理数据块的一次性代码。:)当然,我想我应该始终遵循最佳实践,即使它被扔掉了!!!!!!!!!!!!!!!一般来说,最好将可运行的
传递到线程
构造函数中,而不是尝试对复杂的类进行子类化。遵循格式约定也是一个好主意。顺便说一句:您可能需要找到一个不同的处理异常的方法。在方法返回之前,您可能不会发现文件丢失。谢谢,这只是一些处理数据块的一次性代码。:)当然,我想我应该始终遵循最佳实践,即使它是一次性的!!!!!!!!!!!!
public void incomingMessageThread() throws FileNotFoundException, IOException
{
Thread t= new Thread()
{
public void run()
{
BuildData a = new BuildData();
for(int i = 0; i<100; i++)
{
a.parseDataFile("_"+i+"/outgoingMessages");
}
}
};
t.start();
}