Java线程的三种方式
01. 继承 Thread 类,并重写 run 方法
02. Runnable 方法
3. Callable方式
4.线程间资源冲突的解决方法
A: 同步代码块
B.同步方法 (本质上还是同步代码块,只不过是将 myrunnable实现对象做为了同步锁对象
5. 生产者与消费者模式
>> 提供三个类
a. 状态及参数类:主要提供同步代码块锁对象、资源状态、及业务总量等信息;
b. 生产者类:内部提供同步代码块(使用状态与参数类中的同步代码锁对象)、在逻辑中识别状态,并依据业务总量进行识别并决定是否退出业务生产;
c.消费者类:内部提供同步代码块(与生产者使用同一个锁对象),在逻辑中识别状态(与生产者业务刚好相反); 并依据业务总量进行识别来决定是否退出业务处理 ;
>> 在代码中,依据 锁对象.wait() 来实现线程的等待 ;
>> 依据 锁对象. notifyAll() 来唤醒 资源锁对象上的其它等待线程;
6. 阻塞队列实现等待与唤醒
>> 阻塞队列结构
>> 阻塞队列的方法
>> 实现方式: 在生产者和消费者线程创建前,先创建一个阻塞队列对象,并将此对象做为入参,传入到生产者/消费者中;
生产者:通过 put 提供信息;
消费者:通过 take 获取信息;
>> 阴塞队列对象,在创建时,可提供参数,控制队列的大小;