用Java多线程在mail中创建Thread对象的介绍

Java多线程有很多的知识需要我们学习,在学习的时候还是需要我们靠近实践。下面我们就来详细的看看有关Java多线程的使用情况。我们接着修改ThreadDemo1,在main方法中创建四个Thread对象:

 
 
 
  1. public class ThreadDemo1{  
  2. public static void main(String[] args){  
  3. new ThreadTest().start();  
  4. new ThreadTest().start();  
  5. new ThreadTest().start();  
  6. new ThreadTest().start();  
  7. }  
  8. }  
  9. class ThreadTest extends Thread{  
  10. private int ticket = 100;  
  11. public void run(){  
  12. while(true){  
  13. if(ticket > 0){  
  14. System.out.println(Thread.currentThread().getName() +  
  15. ” is saling ticket” + ticket–);  
  16. }else{  
  17. break;  
  18. }  
  19. }  
  20. }  
  21. }  

这下达到目的了吗?

从结果上看每个票号都被打印了四次,即四个线程各自卖各自的100张票,而不去卖共同的100张票。这种情况是怎么造成的呢?我们需要的是,多个线程去处理同一个资源,一个资源只能对应一个对象,在上面的程序中,我们创建了四个ThreadTest对象,就等于创建了四个资源,每个资源都有100张票,每个线程都在独自处理各自的资源。

经过这些实验和分析,可以总结出,要实现这个铁路售票程序,我们只能创建一个资源对象,但要创建多个线程去处理同一个资源对象,并且每个线程上所运行的是相同的程序代码。在回顾一下使用接口编写Java多线程的过程。

 
 
 
  1. public class ThreadDemo1{  
  2. public static void main(String[] args){  
  3. ThreadTest t = new ThreadTest();  
  4. new Thread(t).start();  
  5. new Thread(t).start();  
  6. new Thread(t).start();  
  7. new Thread(t).start();  
  8. }  
  9. }  
  10. class ThreadTest implements Runnable{  
  11. private int tickets = 100;  
  12. public void run(){  
  13. while(true){  
  14. if(tickets > 0){  
  15. System.out.println(Thread.currentThread().getName() +  
  16. ” is saling ticket ” + tickets–);  
  17. }  
  18. }  
  19. }  
  20. }  

上面的程序中,创建了Java多线程,每个线程调用的是同一个ThreadTest对象中的run()方法,访问的是同一个对象中的变量(tickets)的实例,这个程序满足了我们的需求。在Windows上可以启动多个记事本程序一样,也就是多个进程使用同一个记事本程序代码。

当前标题:用Java多线程在mail中创建Thread对象的介绍
网址分享:http://www.csdahua.cn/qtweb/news7/366557.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网