线程的两种创建方式

继承Thread类:
/** 
 * 方法一: 
 *  继承Thread类创建线程 
 * @author LiMin 
 * 
 */  
public class CreateThread extends Thread {  
    private String name;  
    public CreateThread(){  
          
    }  
    public CreateThread(String name){  
        /*this.name=name;*/  
        //调用父类的给线程命名的方法  
        super(name);  
          
    }  
    public void run(){  
        for(int x =0;x<60;x++){  
            /*System.out.println(this.name+ " run -----"+ x);*/  
            /*System.out.println(this.getName()+ " run -----"+ x);*/  
            //使用Thread的静态方法获取线程名称Thread.currentThread().getName()是标准通用方式   
            /*System.out.println(Thread.currentThread().getName()+ " run -----"+ x);*/  
            System.out.println((Thread.currentThread()==this)+"....."+this.getName()+ " run -----"+ x);  
        }  
      
    }  
}  

调用:

public class ThreadTest {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
      
        CreateThread t1 = new CreateThread("one----");  
        CreateThread t2= new CreateThread("two+++++");  
          
        t1.start();  
        t2.start();  
          
          
        for(int x =0;x<60;x++){  
            System.out.println("main-----"+ x);  
        }  
    }  
  
}  


实现Runnable接口:

public class Ticket2 implements Runnable{ //extends Thread{   
      
  
    //如果是静态的话,所有的线程会共享这100张票  
    /*private  static int  ticket =100;*/  
  
    //如果不是静态的话,每一个线程对象都会创建这个ticket对象,也即每个线程拥有100张票卖。  
    //这时候,如果还是采用继承Thread类的方法就不行了,需要使用实现Runnable接口创建线程  
    private  int  ticket =1000;  
      
      
    Object obj= new Object();     
    public void run() {  
          
        //在这里声明的对象是无效的  
        /*Object obj= new Object(); */  
          
        while(true){  
              
            synchronized (obj) {  
                if(ticket>0){      
                      
                    try {  
                        Thread.sleep(10);  
                          
                    } catch (InterruptedException e) {  
                          
                        e.printStackTrace();  
                    }  
                    System.out.println(Thread.currentThread().getName()+".....sale : "+ ticket--);  
                      
                }  
            }  
              
        }  
          
    }   
  
      
  
}  

调用:

public class TicketDemo2 {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
          
        Ticket2 t = new Ticket2();  
          
        Thread t1 = new Thread(t);  
        Thread t2 = new Thread(t);  
        Thread t3 = new Thread(t);  
        Thread t4 = new Thread(t);  
          
        t1.start();  
        t2.start();  
        t3.start();  
        t4.start();       
          
  
    }  
  
}  




1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值