日期:2014-05-20  浏览次数:20804 次

关于线程的问题,哪位高手来指点一下啊???
请哪位高手详细说一下到底线程是用来做什么的啊?
我刚刚学完了线程一章,可是我不太明白要怎么样才能实现线程的控制和多线程并行。我们老师还要求我们用线程的知识写一个订票系统的程序   ,可是我觉得这个程序根本用不到线程。请高手给我一点编这个程序的思路,不盛感激!!

------解决方案--------------------
打个比方吧,就拿订票的问题。
如果不用线程的话,就相当于售票处只有一个窗口,所有的人都要在一个窗口排队买票,一个人要用1分钟,100歌人就是100分钟。。。
如果使用线程,比较极端的方法,就是一个线程对应一个买票的请求,也就是说一个人对应一个窗口,那么最理想的就是1分钟全搞定,呵呵

这例子就是说,并发线程越多,效率就会越高,当然,时理想中的,这当中还要有系统的硬件支持。拿上面的例子来说,就不可能给每个人(请求)开一个窗口(线程)。

对于你的作业,完全可以每个请求一个线程来解决,用比较极端的方式,效果比较明显。
------解决方案--------------------
public class Test implements Runnable
{

int lens = 0;
public Test(int len)
{
this.lens = len;
}
public void run()
{

while(lens> 0)
{
System.out.println(Thread.currentThread().getName()+ lens-- + "已定出! ");
try{Thread.sleep(100);}catch(Exception e){}
}

System.out.println( "票已售完! ");

}

public static void main(String args[])
{
Test test = new Test(100);
Thread t1 = new Thread(test, "1号售票处: ");
Thread t2 = new Thread(test, "2号售票处: ");
Thread t3 = new Thread(test, "3号售票处: ");
t1.start();
t2.start();
t3.start();
}
}


参考下 三个窗口同时售100张票的情况