和luster一起学习java编程(2)
今天我们来看看线程的优先级方面的问题。呵呵。
下面是一个简单的例子,启动两个线程,赋予不同的优先级。我们会发现,优先级高的能先运行完。
class Counter extends Thread
{
int i = 0;
public void run()
{
while(i<1000)
{
if((i++%10) == 0)
{
System.out.println(getName()+" "+i/10);
}
try{sleep((int)(Math.random()*10));}
catch(Exception e){}
}
}
}
class ThreadPrio
{
public static void main(String args[])
{
Thread one = new Counter();
one.setName("T1");
one.setPriority(Thread.NORM_PRIORITY-2);
Thread two = new Counter();
two.setName("T2");
two.setPriority(Thread.NORM_PRIORITY+2);
one.start();
two.start();
while(one.isAlive()' 'two.isAlive())
{
try{Thread.sleep(5000);}
catch(InterruptedException e){}
}
}
}
|
例子中的setName方法是给一个线程赋予一个名字,这样可以知道到底是那个线程在运行了。呵呵。大家可以运行上面的程序,体会一下效果。
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:
和luster一起学习java编程(1)
下一篇:
和luster一起学习java编程(3)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】