java 多线程笔记

最近在做学校的课设 java多线程理解不是很深 暂时只是稍微了解以下的

1:多线程
    (1)多线程:一个应用程序有多条执行路径
        进程:正在执行的应用程序
        线程:进程的执行单元,执行路径
        单线程:一个应用程序只有一条执行路径
        多线程:一个应用程序有多条执行路径
        
        多进程的意义?
            提高CPU的使用率
        多线程的意义?
            提高应用程序的使用率
    (2)Java程序的运行原理及JVM的启动是多线程的吗?
        A:Java命令去启动JVM,JVM会启动一个进程,该进程会启动一个主线程。
        B:JVM的启动是多线程的,因为它最低有两个线程启动了,主线程和垃圾回收线程。
    (3)多线程的实现方案
        A:继承Thread类
        B:实现Runnable接口
    (4)线程的调度和优先级问题
        A:线程的调度
            a:分时调度
            b:抢占式调度 (Java采用的是该调度方式)
        B:获取和设置线程优先级
            a:默认是5
            b:范围是1-10
    (5)线程的控制(常见方法)
        A:休眠线程
        B:加入线程
        C:礼让线程
        D:后台线程
        E:终止线程
    (6)线程的生命周期
        A:新建
        B:就绪
        C:运行
        D:阻塞
        E:死亡
    (7)多线程安全问题的原因
        A:是否有多线程环境
        B:是否有共享数据
        C:是否有多条语句操作共享数据
    (8)同步解决线程安全问题
        A:同步代码块
            synchronized(对象) {
                需要被同步的代码;
            }
            
            这里的锁对象可以是任意对象。

(9)多线程中run和start的区别    

     A:run():封装了被线程执行的代码,直接调用仅仅是普通方法的调用
     B:start():启动线程,并由JVM自动调用run()方法

(10)sleep()和wait()方法的区别
    sleep():必须指时间;不释放锁。
    wait():可以不指定时间,也可以指定时间;释放锁。

发布了55 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42612338/article/details/93369434