随笔分类 -  Java 多线程基础

摘要:Java 多线程基础(十二)生产者与消费者 一、生产者与消费者模型 生产者与消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下: ①、生产者仅仅在仓储未满时候生产,仓满则停止生产。②、消费者仅仅在仓储有产品时候才能消费,仓空则等待。③、 阅读全文
posted @ 2020-06-25 13:44 凌倾-学无止境 阅读(725) 评论(0) 推荐(0)
摘要:Java 多线程基础(十一)线程优先级和守护线程 一、线程优先级 Java 提供了一个线程调度器来监控程序启动后进去就绪状态的所有线程。线程调度器通过线程的优先级来决定调度哪些线程执行。一般来说,Java的线程调度器采用时间片轮转算法使多个线程轮转获得CPU的时间片。然而根据实际情况,每个线程的重要 阅读全文
posted @ 2020-06-24 19:53 凌倾-学无止境 阅读(607) 评论(0) 推荐(0)
摘要:Java 多线程基础(十)interrupt()和线程终止方式 一、interrupt() 介绍 interrupt() 定义在 Thread 类中,作用是中断本线程。 本线程中断自己是被允许的;其它线程调用本线程的 interrupt() 方法时,会通过 checkAccess() 检查权限。这有 阅读全文
posted @ 2020-06-22 18:07 凌倾-学无止境 阅读(677) 评论(1) 推荐(0)
摘要:Java 多线程基础(九)join 方法 一、join() 方法介绍 join() 定义 Thread 类中的,作用是:把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。如:线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。 Thread 类中 阅读全文
posted @ 2020-06-20 16:03 凌倾-学无止境 阅读(634) 评论(0) 推荐(0)
摘要:Java 多线程基础(八)线程让步 yield 一、yield 介绍 yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权;但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权;也有可能是当前 阅读全文
posted @ 2020-06-19 18:53 凌倾-学无止境 阅读(223) 评论(0) 推荐(0)
摘要:Java 多线程基础(七)线程休眠 sleep 一、线程休眠 sleep sleep() 方法定义在Thread.java中,是 static 修饰的静态方法。sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会 阅读全文
posted @ 2020-06-18 23:02 凌倾-学无止境 阅读(3302) 评论(0) 推荐(1)
摘要:Java 多线程基础(六)线程等待与唤醒 遇到这样一个场景,当某线程里面的逻辑需要等待异步处理结果返回后才能继续执行。或者说想要把一个异步的操作封装成一个同步的过程。这里就用到了线程等待唤醒机制。 一、wait()、notify()、notifyAll() 等方法介绍 在 Object 中,定义了 阅读全文
posted @ 2020-06-17 17:17 凌倾-学无止境 阅读(1158) 评论(0) 推荐(0)
摘要:Java 多线程基础(五)线程同步 当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。 要解决上述多线程并发访问一个资源的安全性问题,Java中提供了同步机制(synchronized)来解决。 一、线程同步 当线程A进入操作的时候,线程B和线程C只能在外等 阅读全文
posted @ 2020-06-12 17:03 凌倾-学无止境 阅读(311) 评论(0) 推荐(0)
摘要:Java 多线程基础(四)线程安全 在多线程环境下,如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 在了解线程安全之前,先来说一下Java的内存模型 JMM ,先了解多线程是如何工作的。 阅读全文
posted @ 2020-06-11 14:46 凌倾-学无止境 阅读(247) 评论(0) 推荐(0)
摘要:Java 多线程基础(三) start() 和 run() 通过之前的学习可以看到,创建多线程过程中,最常用的便是 Thread 类中的 start() 方法和线程类的 run() 方法。两个方法都包含在 Thread 类中。 一、start() 方法和run() 方法的区别 Thread 类中包含 阅读全文
posted @ 2020-06-10 12:46 凌倾-学无止境 阅读(435) 评论(0) 推荐(0)
摘要:Java 多线程基础(二)多线程的实现方式 在Java中,java使用Thread类代表线程,所有的线程对象都必须是Thread或者其子类的实例,每个线程的作用是完成一定任务,实际上是就是执行一段程序流(一段顺序执行的代码)。实现多线程一共有4种方式,分别是继承于Thread 类、实现 Runnab 阅读全文
posted @ 2020-06-06 20:24 凌倾-学无止境 阅读(185) 评论(0) 推荐(0)
摘要:Java 多线程基础(一)基本概念 一、并发与并行 1、并发:指两个或多个事件在同一个时间段内发生。 2、并行:指两个或多个事件在同一时刻发生(同时发生)。 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些 阅读全文
posted @ 2020-06-05 20:41 凌倾-学无止境 阅读(395) 评论(0) 推荐(0)