为什么我的线程总是输出相同的结果

wu727957927 2017-03-18 08:22:42
public class Client {
public static void main(String[] args) {
TestConnect tc1 = new TestConnect();
tc1.setIp("111");
Thread t1 = new Thread(tc1);
t1.run();
TestConnect tc2 = new TestConnect();
tc2.setIp("aaa");
Thread t2 = new Thread(tc2);
t2.run();
}
}

public class TestConnect implements Runnable{
private String ip;

public void setIp(String inputIp){
this.ip = inputIp;
}
@Override
public void run() {
for(int i=0;i<400;i++){
System.out.println(ip);
}
}

}
...全文
318 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
galiniur0u 2017-03-23
  • 打赏
  • 举报
回复
楼主直接调用run方法,这跟直接调用一个函数没什么区别。根本就木有实现多线程,整个程序都是一个线程从头执行到尾。可以用start方法启动来实现多线程。
zs808 2017-03-23
  • 打赏
  • 举报
回复
原因楼上已经解答了,关于start与run的区别,请走传送门: http://bbs.csdn.net/topics/392135849
小灰狼 2017-03-23
  • 打赏
  • 举报
回复
启动线程是调用 start 方法,不是 run
小灰狼 2017-03-23
  • 打赏
  • 举报
回复
启动线程是调用 start 方法,不是 run
timo001 2017-03-22
  • 打赏
  • 举报
回复
你没看清吧,我试了没问题~~
太上-道 2017-03-19
  • 打赏
  • 举报
回复
另外启动线程用start t1.start 不是run
太上-道 2017-03-19
  • 打赏
  • 举报
回复
特意试了一下真没问题
李德胜1995 2017-03-18
  • 打赏
  • 举报
回复
启动线程不是start吗???
wu727957927 2017-03-18
  • 打赏
  • 举报
回复
每次输出都是先输出完111再输出aaa,不像是正常现象啊,哪里出问题了吗

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧