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

25 篇文章 0 订阅


  概述:

         在操作系统中,每一个独立执行的程序都可称之为一个进程,多线程是指一个应用程序中有多条并发执行的线索,每一条线索叫做一个线程。同时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的书,在没事的时候看书,敲代码,从基础做起。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值