zoukankan      html  css  js  c++  java
  • 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;
                    }
                }
        
            }
        }
        
    }
  • 相关阅读:
    js··事件捕捉
    js中的Call()和apply()
    什么是变量提升?
    什么是作用域? 什么是作用域链?
    什么是原型链?
    js中this是什么?
    Js高级 事件冒泡
    Js高级 事件 对象
    Js高级 部分内容 面向对象
    工作期间的策划案总结(1)
  • 原文地址:https://www.cnblogs.com/starwolf/p/3220319.html
Copyright © 2011-2022 走看看