多线程
java中多线程的使用
永不落后于人
永远相信美好的事情即将发生
展开
-
线程的生命周期
原创 2021-01-11 15:47:54 · 77 阅读 · 0 评论 -
Java线程池的使用
使用线程池的好处:提高了响应速度(减少了创建新线程的时间)。降低资源的消耗(重复利用线程池中的线程,不需要每次都创建)。便于线程管理代码实现:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;/** * @author panghu * @description * @cre原创 2021-01-11 15:21:59 · 109 阅读 · 0 评论 -
Callable接口实现多线程的代码实现与优点
Callable接口是JDK 5.0新增的特性。对比Runnable接口的好处:Callable接口要重写的call()方法是可以有返回值的。call()方法可以抛出异常,供外部捕获。Callable接口支持泛型。代码实现:import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * @a原创 2021-01-11 14:09:43 · 569 阅读 · 0 评论 -
Java多线程间的通信
常用方法:wait():调用此方法的线程进入阻塞状态,并且释放同步锁。notify():唤醒被wait的线程,如果有多个线程被wait,那么唤醒优先级更高的。notifyAll():话逆行所有被wait的线程。注意:wait()、notify()、notifyAll()都只能在同步块或者同步方法中使用。wait()、notify()、notifyAll()是声明在Object类中的方法。wait()、notify()、notifyAll()的调用者必须是同步代码块或同步方法中的同步监视器原创 2021-01-10 10:39:49 · 101 阅读 · 0 评论 -
Java多线程使用Lock实现线程安全
JDK 5.0以后新增了Lock用来实现线程安全。注意:Lock是一个接口,我们常用它的实现类ReentrantLock。需要手动调用lock()上锁,unlock()解锁。代码实现:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @description lock实现线程安全购票 * @author panghu * */public cl原创 2021-01-07 22:19:55 · 159 阅读 · 0 评论 -
Java多线程使用synchronized实现线程安全的两种方法
方法一:同步代码块:synchronized(同步监视器){ 需要被同步的代码块}注意:操作共享数据的代码,即为同步代码块。共享数据:即多个线程共同操作的变量。同步监视器:也称作“锁”,任何一个类的对象,都可以充当这个锁。但是多个线程必须共用同一把锁。在实现Runnable接口创建多线程的方式中,我们可以考虑用this来充当同步监视器。代码实现:/** * @author panghu * @description 实现Runnable接口方式实现线程安全多窗口卖票 * @原创 2021-01-06 15:58:34 · 189 阅读 · 0 评论