美文网首页
Java基础知识12-多线程4

Java基础知识12-多线程4

作者: 我相信你爱过gg | 来源:发表于2017-02-05 11:47 被阅读7次
    配图

    同步

    当两个或多个想成需要访问共享资源时,他们需要以某种方式确保每次只有一个线程使用资源。是先这一目的的过程称为同步。

    同步的关键是监视器的概念,监视器是所有用作互斥锁的对象。在给定时刻,只有一个线程可以拥有监视器。当线程取得锁时,也就是进入了监视器。其他所有企图进入加锁监视器的线程都会被挂起,直到第一个线程退出监视器。也就是说,这些等待的其他线程在等待监视器。

    可以使用两种方法同步代码。这两种方法都要用到synchronized关键字。

    使用同步方法

    在Java中进行同步很容易,因为所有对象都有与他们自身关联的隐式监视器。只需要使用synchronized关键字修饰过的方法。

    public synchronized void methodName() {
            
    }
    

    使用同步代码块

    synchronized (objRef){
                
    }
    

    objRef可以使用任意对象。

    同步方法与同步代码块的区别

    同步代码块的锁是任意对象。
    同步方法的锁是this。

    synchronized 关键字可以加载静态方法上,那么加载静态方法上他的锁对象是当前类的class文件。
    因为静态方法是随着类的加载而加载。

    总结

    进程:正在执行的应用程序
    线程:进程的执行单元,执行路径
    单线程:一个应用程序只有一条执行路径
    多线程:一个应用程序有多条执行路径

    Java程序的运行原理以及jvm的启动是多线程吗?
    A:Java命令去启动jvm,jvm会启动一个进程,该进程会启动一个主线程。
    B:jvm的启动是多线程的,因为它最低有两个线程启动,主线程和垃圾回收线程。

    多线程的实现方案
    A:继承Thread类
    B:实现Runnable接口

    线程的调度和优先级问题
    A:线程调度
    a:分时调度
    b:抢占式调度
    B:获取和设置线程优先级问题
    a:默认是5
    b:范围是1-10

    线程的控制方法
    A:休眠线程
    B:加入线程
    C:礼让线程
    D:后台线程
    E:终止线程

    线程的生命周期
    A:新建
    B:就绪
    C:运行
    D:阻塞
    E:死亡

    相关文章

      网友评论

          本文标题:Java基础知识12-多线程4

          本文链接:https://www.haomeiwen.com/subject/bhzsittx.html