Java线程的三种方式

01. 继承 Thread 类,并重写 run  方法

  

 

02. Runnable 方法

  

 

3. Callable方式

  

  

 

4.线程间资源冲突的解决方法

  A: 同步代码块

  

 

B.同步方法 (本质上还是同步代码块,只不过是将 myrunnable实现对象做为了同步锁对象

  

 5. 生产者与消费者模式

  >> 提供三个类

    a. 状态及参数类:主要提供同步代码块锁对象、资源状态、及业务总量等信息;

    b. 生产者类:内部提供同步代码块(使用状态与参数类中的同步代码锁对象)、在逻辑中识别状态,并依据业务总量进行识别并决定是否退出业务生产;

    c.消费者类:内部提供同步代码块(与生产者使用同一个锁对象),在逻辑中识别状态(与生产者业务刚好相反); 并依据业务总量进行识别来决定是否退出业务处理 ;

    >> 在代码中,依据 锁对象.wait()  来实现线程的等待 ;

    >>                   依据 锁对象. notifyAll()  来唤醒 资源锁对象上的其它等待线程;

6. 阻塞队列实现等待与唤醒

  >> 阻塞队列结构

    

 

  >> 阻塞队列的方法

    

 

    

 

     >> 实现方式: 在生产者和消费者线程创建前,先创建一个阻塞队列对象,并将此对象做为入参,传入到生产者/消费者中;

            生产者:通过 put 提供信息;

           消费者:通过 take 获取信息;     

    >> 阴塞队列对象,在创建时,可提供参数,控制队列的大小; 

 

posted @ 2022-09-08 22:20  耗喜天涯  阅读(41)  评论(0编辑  收藏  举报