java线程学习总结

    技术2022-05-19  24

    关于线程的知识点 :

     

    1,并发和并行的区别:

     

                   并行是指两个线程或者事物在同一时刻同时运行。并发 是指两个线程或者事物在相同的时间段内运行。CPU执行线程的时候是并发运行的。

     

    2,线程的创建  :

                    线程的创建有两种方法,第一是继承Thread类 然后就可以使用Thread类中的方法

     

    第二种是 实现Runnable 接口,例如:用MyThread类实现Runnable接口,然后重写run方法,然后创

     

    建线程类  Thread t = new Thread(new MyThread());  然后调用t.start()  运行该线程。

     

    推荐使用第二种方法,应为java中是单继承,如果使用第一个方法创建线程就不能在继承其他的类了。

     

     

    3,线程的分类:

     

                线程分为 守护线程 和 用户线程 。  守护线程是为其他线程提供服务的线程,例如java中垃圾

     

    回收的线程。 用户线程就是自己创建的线程。

     

     

    4,线程的状态:new ,Runnable ,blocked,waiting,Time_waiting, Terminated

                        新建     可运行        阻塞        等待        超时等待         终止 

     

    详细过程,见图片

     

    5,Thread类中的一些方法:去看API文档

     

    6,线程的sleep

                        比如两个线程和一个主线程,当A线程sleep之后,这时CPU就会去执行 另一个B线程和

     

    主线程中的一个,

     

     

     

    5,线程的加入: Thread类中的join方法

     

    6,线程的优先级设置 :java线程的优先级分为 1-10,默认级别为5,  可以用Thread类中的

     

    setPriority方法设置线程的优先级

     

     

    7,synchronized 关键字,线程锁

                        通过在方法前使用synchronized关键字可以对方法加锁,或者使用synchronized

     

    (this)+ 代码段,对代码段加锁。

     

    区别synchronized(obj) 和synchronized(this)的区别,在使用synchronized的时候要注意加锁的对象。

     

     

    8,线程的同步

     

                      线程的同步很重要,具体看马士兵教程。

     

    9,wait 和notify    

     

                 wait 是让当前调用run方法的线程wait。 wait方法和notify方法是在一起使用,而且必须是在有synchronized关键

    字的代码段或者方法中使用, 在使用wait方法之后 加锁的方法或者程序段暂时放弃加锁。

     

    10,死锁

     

     

     

    线程的难点和重点是线程同步,线程同步必须结合代码进行理解。

     

     


    最新回复(0)