黑马程序员技术交流社区

标题: 多线程的两种实现方式 [打印本页]

作者: sss18310878521    时间: 2015-5-19 23:13
标题: 多线程的两种实现方式
方式一:继承Thread
public class ThreadDemo extends Thread {
        public static Object obj=new Object();
       [b] //这里定义的对象必须是静态的,因为我们定义的锁只有一个,那么这个obj必须是ThreadDemo
     //对象都共用的
        public int num=100;
       
        public void run(){
                while(true){
                        synchronized(obj){  
                               //定义一个锁,在同一个时刻,只能让同一个线程进来
                               
                        if(num>0){
                                try {
                                        Thread.sleep(300);
                                } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                System.out.println(getName()+"正在卖票"+num--);
                        }
                }
        }
        }

方式二:实现Runnable接口


public class ThreadDemo implements Runnable {

         Object obj=new Object();
//由于ThreadDemo继承了Runnable,我们在main方法中调用的时候只需要建立一个ThreadDemo对象
//所以这次不需要再设置成static
         int num=100;
        public void run() {
                while(true){
                        synchronized(obj){
//和继承Thread一样,定义一个锁,在同一个时刻,只能让同一个线程进来
                               
                        if(num>0){
                                try {
                                        Thread.sleep(300);
                                } catch (InterruptedException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                }
                                System.out.println(Thread.currentThread().getName()+"正在卖票"+num--);
                        }
                }

        }


注明:由于代码有点长,在这里main方法中的调用就不写了,只需要记住第一个建立三个ThreadDemo对象,第二个建立一个ThreadDemo对象,然后直接通过start()方法启动线程就可以了       
         
}
       
作者: 林思奇    时间: 2015-5-20 00:35
不错,顶一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2