zoukankan      html  css  js  c++  java
  • JAVA入门到精通-第38讲-线程-坦克大战6

     应用程序在内存中开辟空间-进程;
     内存-大脑容量;
      
     反应切换的速度-CPU;
     试图去尝试别的进程的地址空间---病毒;
     
    线程是由进程(应用程序)创建的;
    涉及到并发,就会涉及到线程;迅雷下载;
     
     
     线程不会跑出到进程外面去的;

     地址空间是由操作系统和JVM决定的;
     32/64位,CPU的寻址空间范围,加载内存的大小;

     线程的调度:
     CPU、内存资源OK?--->Running,运行状态;
     运行过程CPU,内存不够---->Blocked,阻塞状态;
     资源空闲,可用------->Runnable可运行状态;
     最后,退出程序---->Dead死亡;  

     (和人出生,生病,工作,死亡一样的
     
     
     JAVA中任何一个类都可当做线程来使用;

     
    没有手动调用,通过start会启动进程;

    休眠-blocked状态;
    sleep会导致线程进入阻塞状态;释放资源;
     sleep可以定时,做定时器;数据库的清洗;
     Blocked-Runnable-Running不停转;
     转10次以后,自动死亡-times:
     
     退出循环,线程死亡了。
     
     
     JAVA中不允许多继承,Panel类已经继承了JPanel,
     JAVA中的Panel类,通过Runnable接口实现多线程:
     class Dog implements Runnables;
     重写run函数;
     启动的时候先创建线程对象;
     把dog放进去;
     
     ---------------------------------------------
    线程--什么是进程
    进程--概念
    要解释线程,就必须明白什么是进程,就好象要搞清中国历史,就必须要了解春秋战国。
    什么是进程呢?
    进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。
    要点:用户每启动一个进程,操作系统就会为该进程分配一个独立的内存空间。

    线程--概念
    在明白进程后,就比较容易理解线程的概念。
    什么是线程呢?
    是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。
    线程
    1、线程是轻量级的进程
    2、线程没有独立的地址空间(内存空间)
    3、线程是由进程创建的(寄生在进程)
    4、一个进程可以拥有多个线程-->这就是我们常说的多线程编程
    5、线程有几种状态:
      a、新建状态(new)
      b、就绪状态(Runnable)
      c、运行状态(Running)
      d、阻塞状态(Blocked)
      e、死亡状态(Dead)

    线程有什么用处
    java程序中流传一句话,不会使用线程就别跟别人说自己学过java。目前绝大部分应用程序都会涉及到多并发的问题。只要应用程序涉及到并发,就离不开多线程编程。

    线程--如何使用
    在java中一个类要当作线程来使用有两种方法。
    1、继承Thread类,并重写run函数
    2、实现Runnable接口,并重写run函数
    因为java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时在用继承Thread类方法来创建线程显然不可能java设计者们提供了另外一个方式创建线程,就是通过实现Runnable接口来创建线程。

    通过继承Thread类来实现建立线程实例[Thread01.java]
     
    34
     
    1
    /**
    2
     * 演示如何通过继承Thread来开发线程
    3
     */
    4
    public class Thread01 {
    5
        public static void main(String[] args) {
    6
            //创建一个 Cat对象
    7
            Cat cat=new Cat();
    8
            //启动线程
    9
            cat.start();//.start()会导致run函数运行
    10
        }
    11
    }
    12
    13
    class Cat extends Thread{
    14
        int times=0;
    15
        //重写run函数
    16
        public void run(){
    17
            while(true){
    18
                //休眠一秒
    19
                //1000表示1000毫秒
    20
                try {
    21
                    Thread.sleep(1000);//sleep就会让该线程进入到Blocked阻塞状态,并释放资源。
    22
                } catch (Exception e) {
    23
                    e.printStackTrace();
    24
                }
    25
                times++;
    26
                System.out.println("hello,world!"+times);
    27
                if(times==10){
    28
                    //退出线程
    29
                    break;
    30
                }
    31
            }
    32
        }
    33
    }
    34
     
    ----------------------------------------
    通过Runnable接口来实现建立线程实例[Thread02.java]
    x
     
    1
    /**
    2
     * 演示如何通过Runnable接口来开发线程
    3
     */
    4
    public class Thread02{
    5
        public static void main(String []args){
    6
            Dog dog=new Dog();
    7
            //创建线程
    8
            Thread t=new Thread(dog);
    9
            //启动线程
    10
            t.start();
    11
        }
    12
    }
    13
    class Dog implements Runnable{//创建Runnable接口
    14
        public void run(){//重写run函数
    15
            int times=0;
    16
            while(true){
    17
                try{
    18
                    Thread.sleep(1000);
    19
                }catch (Exception e) {
    20
                    e.printStackTrace();
    21
                }
    22
                times++;
    23
                System.out.println("hello,wrold!"+times);
    24
                if(times==10){
    25
                    break;
    26
                }
    27
            }
    28
        }
    29
    }
    30
     




  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10045741.html
Copyright © 2011-2022 走看看