zoukankan      html  css  js  c++  java
  • 线程

    进程:一种自包容的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存。

    线程:线程是进程内部单一的顺序控制流。一个进程拥有多个线程。多个线程共享一个进程的内存空间。

    基于进程的特点是允许计算机同时运行两个或更多的程序。

    基于线程的多任务处理环境汇总,线程时最小的处理单位

    多任务处理的两种类型:

    基于进程

    基于线程

    主线程:main方法一运行,就开启主线程。

    主线程特点:  1、最先开始 

    2、最后结束           

    3、产生其他的子线程           

    4、回收资源

    创建线程的两种方式:声明一个Thread类的子类,并覆盖run()方法

                                                   Class myThread extends Thread{

             Public void run(){}覆盖该方法

    }

    声明一个Runnable接口的类,并实现run()方法

    Class mythread implements Runnable{

             Public void run(){}实现该方法

    }

    继承方法启动线程,调用start();

    接口需要在之前创建线程时,需要传入Runnable实现类对象,那么线程启动时,会执行该对象的run();

    Thread three=new Thread(new TwoThread());

    three.start();

    在线程类中,调用startrun的区别。

    如果直接调用run(),时普通方法调用,不会再主线程基础上,开启子线程,是单线程。

    条用start(),会在主线程基础那个,开启子线程,多个任务同时执行。

     
       

    线程拥有八种状态:

     
       

     

     

     

     

     

     
       

     

     

     

     

     

     

    0、新建

    1、就绪

    2、运行

    3、睡眠

    4、等待

    5、挂起

    6、阻塞

    7、死亡

    线程优先级:当两个或两个以上的线程,同时处于就绪状态,等待CPU执行。优先级高的线程,会优先得到执行。优先级一共分为10级。数字越大,优先级越高。

    线程同步(线程安全)当两个或两个以上的线程同时操作同一个资源时,在同一时间只允许一个线程进行访问,别的线程进行等待。

    Synchronzeed同步,可以作为方法修饰符。表示当一个线程正在访问资源时,别的线程只能等待。当该线程结束对该资源的访问,才允许别的线程访问。

    同步造成的结果:1、数据安全

                                    2、效率低下

    同步有两种方式:同步方法和同步块

    同步方法:public synchronized void test(){}

    同步块:public void run(){

    Synchorized(obj){

    }

    }

    Wait和sleep的区别

    1、Sleep方法在线程类Thread中定义,waiti方法在object中定义

    2、wait方法只能放在方法或同步块中,表示当前线程对资源进行等待。Sleep方法可以放在任何位置,表示当前线程休眠。

    3、wait方法要释放对象锁,sleep方法不会释放对象锁。

    4、Wait方法使用后,线程要notify唤醒后才能继续执行。而sleep方法执休眠结束后,线程自动继续执行。

  • 相关阅读:
    发送邮件以及数据导出
    GridView的使用(高度封装,不怎么灵活,repeat可替代)
    索引学习(一)
    JVM 学习笔记(二)
    JVM 学习笔记(一)
    JDBC 基础知识总结
    需要学习的点
    The Unified Modeling Language(UML)
    向往2的年代
    SQL 各种连接:内连接,外连接(左外,右外,完全外)
  • 原文地址:https://www.cnblogs.com/JLeeci/p/5410493.html
Copyright © 2011-2022 走看看