关闭

【Java基础】多线程——基础

370人阅读 评论(25) 收藏 举报
分类:


  概述:

         在操作系统中,每一个独立执行的程序都可称之为一个进程,多线程是指一个应用程序中有多条并发执行的线索,每一条线索叫做一个线程。同时JAVA是支持单继承的,也就是仅仅可以有一个父类。

         在JAVA中有俩种方式来创建多线程,分别是Thread 和Runnable,但是一个是类,一个是接口,也就自然而然的一个需要继承,另一个仅仅实现就可以啦,所以在java中常用的为runnable。

         在很多的线程中都是需要共享同一个资源的,比如我们的买票系统,由于客户量大,所以我们会想到多线程,但是不是仅仅创建多线程就可以了,这时候还要保证创造一个对象,然后开启多个线程去运行同一个售票对象。


Runnable和Thread类的好处:


           1、适合多个相同的程序代码的线程去处理同一个资源的情况。

           2、避免由于java的单继承带来的局限性


线程的生命周期:


          


            图上很清晰的看到了线程的状态:新建状态、就绪状态、运行状态、阻塞状态、死亡状态


线程的优先级和调度

    

            首先是可以在程序中设置优先级,通过setPriority。还有其他的,不在赘述。


            当线程中出现了以下的情况,就会终止线程的运行:

        

                           1、  线程中调用了yield()方法,让出了对CPU的占有权。其中代码  Thread.yield()是对线程做出了让步,可以让其他的线程来执行。

                           2、  线程中调用sleep()方法,让线程睡觉。

                           3、  更高的优先级的线程出现

                           4、  由于IO操作而受阻

                           5、  线程调用join()方法的时候,调用的线程将被阻塞,直到join方法执行完后才可以运行。

             

             

                 公司的一位同事有一本黑马的java的书,在没事的时候看书,敲代码,从基础做起。


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    网易博客
    我的QQ
    q我啊
    个人资料
    • 访问:295149次
    • 积分:14163
    • 等级:
    • 排名:第966名
    • 原创:204篇
    • 转载:20篇
    • 译文:0篇
    • 评论:4845条
    博客专栏
    最新评论