java多线程初探

今天收获:

1、java的多线程有两种创建方式:

两种线程的创建方式:继承Thread 和 接口Runnerble----------------(记得放入while(true)的循环中,否则只能执行一次)
2、坦克大战项目的多线程应用:
  a、将子弹做成一个线程;
  b、将panel画板也做成一个线程;
 要运用到多线程技术的项目中,如果该类参数会随时间经常变化,可以做成多线程定时执行
3、多线程的互斥和同步
  
  
  a、注意事项:一个线程类只能启动一次,即一个对象(线程)只能启动一次start
    b、线程互斥问题(加对象锁)
Demo如下:
/*
 * 线程同步
 */
package com.Thread;

public class Demo10_5
{
    
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        //创建售票窗口
        TicketWindow tw1 = new TicketWindow();
        
        Thread t1 = new Thread(tw1);
        Thread t2 = new Thread(tw1);
        Thread t3 = new Thread(tw1);
        
        t1.start();
        t2.start();
        t3.start();
        
    }
    
}

//售票窗口
class TicketWindow implements Runnable
{
    int nums = 100;
    @Override
    public void run()
    {
        // TODO Auto-generated method stub
        while (true)
        {
            //加互斥锁,同步
            synchronized (this)
            {
                if (nums > 0)
                {         
                    try
                    {
                        Thread.sleep(100);
                    }
                    catch (Exception e)
                    {
                        // TODO: handle exception
                    }
                    //显示售票信息
                    System.out.println(Thread.currentThread().getName()+" 当前售出第 " + nums +" 张票");
                    //售票
                    nums--;
                }
                else 
                {
                    //售票结束
                    break;
                }
            }
    
        }
    }
    
}

 

posted @ 2013-07-27 21:36  月之星狼  阅读(280)  评论(0编辑  收藏  举报