Java并发
Emiya_Zero
渣渣程序猿
展开
-
多线程-服务端客户端通信场景
Java多线程进程与线程Java线程线程状态的切换同步与锁生产者与消费者模型锁与死锁多线程-条件变量Condition文章目录Java多线程前言一、场景设计1.服务端2.处理线程3.客户端二、示例代码1.服务端2.客户端3.服务端处理线程三、服务端伪异步处理-线程池总结前言多线程能应用在那些场景?例如:消息通信场景一、场景设计以下内容思路来自于 Netty权威指南(第二版) 2.1.2节中的TimeServer 1.服务端服务端创建ServerSocket监听设置的原创 2020-12-20 17:36:53 · 251 阅读 · 1 评论 -
多线程-条件变量Condition
Java多线程进程与线程Java线程线程状态的切换同步与锁生产者与消费者模型锁与死锁文章目录Java多线程前言一、Condition是什么?二、存款/取款示例1.设计流程2.编写代码总结前言设想一下假如我们对一个账户,进行存款与取款操作,当取款操作进行时余额不够进行等待阻塞,存款后只需要唤醒存款的线程该如何处理?一、Condition是什么?Condition是java.util.concurrent.locks包下面的一个接口,从包名上面看就能够看出是并发锁时候用的。存在以原创 2020-12-12 17:49:44 · 137 阅读 · 0 评论 -
锁与死锁
Java多线程进程与线程Java线程线程状态的切换同步与锁生产者与消费者模型文章目录Java多线程前言一、Lock是什么?二、锁的demo三、读写锁Demo总结前言之前我们了解过同步关键字synchronized来解决多线程共享数据的问题,在JDK1.5之后Java提供了更便捷的接口Lock来解决多线程同步问题一、Lock是什么?Lock是一个接口,存在下图的实现类下面简单介绍下Lock接口的方法lock():获取锁如果锁没有其他线程获取,则获取锁立即返回,将锁的保持原创 2020-12-06 17:35:22 · 981 阅读 · 0 评论 -
生产者与消费者模型
Java多线程进程与线程Java线程线程状态的切换同步与锁文章目录Java多线程前言一、生产者消费者模型是干什么的?二、生产者三、消费者四、仓库总结前言今天来学习经典的生产者消费者模型提示:以下是本篇文章正文内容,下面案例可供参考一、生产者消费者模型是干什么的?生产者消费者模型是存在一批生产者,一批消费者,一个仓储,同时按以下条件进行生产消费1.生产者只有在仓储没有满的时候进行生产,仓储满的时候进行等待2.消费者只有在仓储存在货物的时候才进行消费,仓储空了则进行等待3.消费原创 2020-12-02 23:17:19 · 270 阅读 · 0 评论 -
同步与锁
Java多线程进程与线程Java线程线程状态的切换文章目录Java多线程前言一、为什么要同步?二、同步总结前言当多线程访问一个公共变量会出现什么情况呢?一、为什么要同步?当有一个线程A,线程B访问同一个变量,不做任何处理会出现什么情况呢?模拟一个线程a1,一个线程a2操作同一对象demo进行数据修改代码如下(示例):public class ThreadDemo { public class Demo{ private int i = 100;原创 2020-12-01 23:11:05 · 143 阅读 · 0 评论 -
线程状态的切换
Java多线程进程与线程Java线程文章目录Java多线程前言一、线程的状态二、线程状态的切换1.线程的创建2.由创建到可运行3.阻止线程的运行总结前言上文讲述了Java的线程相关的Thread和Runnable,今天来学习线程的状态切换一、线程的状态线程的生命周期新建<创建了线程的实例但是没有执行start()方法>就绪状态<当线程有资格运行,但是调度器还没有把它选为运行状态>运行状态等待/阻塞/睡眠<线程处于有资格运行的状态,线程仍然是活的原创 2020-11-30 22:42:50 · 349 阅读 · 0 评论 -
Java线程
系列文章目录[进程与线程](https://editor.csdn.net/md/?articleId=110295236)文章目录系列文章目录前言一、Runnable接口二、Thread类一、run方法二、常用的构造函数三、启动和使用一、 继承Thread类二、实现Runnable接口总结前言前一篇讲了进程与线程之间的关系,这次讲讲如何在Java代码中创建一个线程一、Runnable接口 Runnable是线程的基础,本质是一个带有抽象方法run()的接口二、Thread类原创 2020-11-29 22:36:38 · 181 阅读 · 2 评论 -
进程与线程
进程与线程前言进程线程用户线程守护线程总结前言在学习Java并发之前,得清楚进程和线程的关系进程在操作系统中,进程就是一个个的应用程序,比如一个可执行的exe程序,一个可执行的jar,在我们熟悉的windows操作系统中打开任务管理器可以默认的tab页就是进程在win上面可以用cmd的netstat -ano命令查找是什么进程(pid)占据了那个端口线程线程是指进程中的一个执行流程,一个进程中可以运行多个线程。例如以下java程序public static void main(String原创 2020-11-28 23:03:32 · 172 阅读 · 0 评论