标题: 代码题!关于线程 [打印本页] 作者: 樊占江 时间: 2012-8-14 22:46 标题: 代码题!关于线程 public class Xxx
{
public static void main(String args[])
{
new Test().start(); for(int i=0;i<10;i++)
{ System.out.println("main线程在运行"); }
}}
class Test extends Thread
{
public void run()
{ for(int i=0;i<10;i++)
{
System.out.println("Text running");
}
}
}
我期望两个线程交替输出,但实际并没有
作者: 黑马张旭明 时间: 2012-8-14 22:49
因为你定义的循环次数i<10太小了,CPU还没切换主线程就执行完了,建议i<500试试作者: 杨彪 时间: 2012-8-14 23:15
你可以尝试两个线程之间的交互 ,不是很明显 因为cpu运行的速度太快。在内存中坐着告诉的切换; 所以做这种题一定要多运行几次
public class Xxx
{
public static void main(String args[]) {
Test t = new Test();
Thread t1= new Thread(t,"guge");
Thread t2 = new Thread(t,"baidu");
t1.start();
t2.start();
}
}
class Test implements Runnable{
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName()+"*********"+"Text running");
Thread.yield();//Thread类中yield 的这个方法是 给其他线程让路,让多个线程间的操作趋近于平衡
}
}
}作者: 王德升 时间: 2012-8-14 23:17
public class Xxx
{
public static void main(String args[])
{
new Test().start();
class Test extends Thread
{
public void run()
{
for(int i=0;i<10;i++)
{
System.out.println(Thread.currentThread()+"Text running");
}
}
}
/*
我运行就可以啊,你可以线程名称或者让循环多转一会。
没加名称:
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
main线程在运行
Text running
Text running
Text running
Text running
Text running
Text running
Text running
Text running
Text running
Text running