• 3.8 java基础总结①多线程


    多线程

    多线程这章理论大于实践,因为在实际开发中多线程的都封装到框架里边了的,程序员一般不会写多线程,多线程属于Java里边比较底层的代码了。

    线程是处理器调度的最基本单位
    程序>进程>线程
    程序是死的,当启动程序得时候会有一个或几个进程,每个进程里边可以有诺干线程。基于线程开销更

    创建线程:两种方法
    1、声明Thread的子类,重写run方法
    class MyThread extends Thread{
    public void run(){
    }
    }
    Mythread a = new MyThread();
    a.start;

    2、实现Runnable接口,实现run方法
    class MyThread2 implements Runnable{
    public void run(){}
    }
    Mythread2 b = new MyThread2();
    Thread bb = new Thread(b);
    bb.start;
    调用线程的带实现Runnable接口的有参构造,进行实例化对象
    这个方法常用,因为Java单继承,但可以多实现

    线程的主要方法:
    -start 启动,调用run方法,直接调用run方法相当于普通方法,不是线程
    -sleep 暂停,静态的,可以暂停线程多少毫秒
    -yield 让出CPU的控制权,让别人先执行,

    设置优先级(1-10)10最大,优先级大的并不绝对先执行,也不是先运行完再运行其他
    而是抢占的资源多

    wait-notify 机制
    线程间相互通信
    只能用在synchronized里边,
    wait:让使用对象的线程停止运行,进入等待,直到另一个使用该对象的线程运行notify
    notify:线程在运行中遇到notify,环形使用相同对象的第一个碰到wait的线程


    同步块,同步方法
    synchronized:
    上锁,保护对象,可以是本身或者其他对象,
    在运行到同步块或者同步方法的时候,其他对象不能运行这里边代码,必须这个线程运行完之后,其他的才能运行这里边的代码
    保证了一些数据的准确性(比如很多个对象同时读写(访问)一个资源)

    同步块:可以锁本身对象或者其他对象,块的代码比方法少,减少其他线程的等待时间
    同步方法:只能锁本身对象,

  • 相关阅读:
    如何为ubuntu server 14.04 安装图形界面
    linux远程拷贝命令-scp
    Git和Github简单教程
    DotNetNuke
    Orchard
    JIRA-6.3.6安装与破解
    BugFree的安装
    webapi部署到IIS 404错误
    Mysql分组求和&LIMIT
    Mysql正则
  • 原文地址:https://www.cnblogs.com/chenyuanqiu2008/p/5274224.html
Copyright © 2020-2023  润新知