public class MyMmsReceive implements Runnable {
...
public static void main(String[] args) throws Exception {
MyMmsReceive receiver = new MyMmsReceive();
receiver.start();
}
public void run() { while (true) { try { Thread.sleep(50); }
catch (Exception e) { System.out.println(e); } } }}
我在这里为什么reciver.start不能调用到run()?
而当我把程序改成:
...
public static void main(String[] args) throws Exception {
MyMmsReceive receiver = new MyMmsReceive();
Thread t1 = new Thread(receiver);
t1.start();
}
...
就可以调用了,可是我感觉这时候调用的是另一个thread,因为他不能完成原来类里面能完成的功能了。我应该如何修改?
...
public static void main(String[] args) throws Exception {
MyMmsReceive receiver = new MyMmsReceive();
receiver.start();
}
public void run() { while (true) { try { Thread.sleep(50); }
catch (Exception e) { System.out.println(e); } } }}
我在这里为什么reciver.start不能调用到run()?
而当我把程序改成:
...
public static void main(String[] args) throws Exception {
MyMmsReceive receiver = new MyMmsReceive();
Thread t1 = new Thread(receiver);
t1.start();
}
...
就可以调用了,可是我感觉这时候调用的是另一个thread,因为他不能完成原来类里面能完成的功能了。我应该如何修改?
Thread t1 = new Thread(receiver);
t1.start();
MyMmsReceive receiver = new MyMmsReceive();
Thread t1 = new Thread(receiver);
t1.start();
之后不能调用在
receiver.start();
for(;;);
时候调用的socket了。
public class MyMmsReceive implements Runnable {
...
public static void main(String[] args) throws Exception {
MyMmsReceive receiver = new MyMmsReceive();
receiver.start();
}
调用socket类等待参数传递{
}
}
这样的时候下面的socket类在有参数传进来的时候会自动执行
但是我写成
MyMmsReceive receiver = new MyMmsReceive();
Thread t1 = new Thread(receiver);
t1.start();
的时候那个socket类就不能自动调用了
Thread t1 = new Thread(receiver);
这句什么意思?为什么把receiver放在那里?
这句代码创建一个新的Thread实例,并且将receiver作为被run的对象---
...
就可以调用了,可是我感觉这时候调用的是另一个thread,因为他不能完成原来类里面能完成的功能---这种感觉是错误的,自始至终你只创建了一个thread,如果你连这个唯一的thread都嫌多余的话,那就不是一个多线程程序了
即使考虑最简单的情况,也至少是Thread的子类