学习java多线程,这必须搞懂的这几个概念

转载自 学习java多线程,这必须搞懂的这几个概念,很重要。

同步和异步


同步,Synchronous,即调用方法开始,一旦调用就必须等待方法执行完返回才能继续下面的操作。

举个例子,你去银行ATM取钱,你必须等到ATM吐完钱你拿到钱取完卡你才能离开。


异步,Asynchronous,即不关心方法执行的过程,触发要调用的方法就继续执行下面的操作,不会像同步那样阻塞直要到方法完成才继续。

举个例子,你这次要取钱,数量较大,你直接电话或者APP预约银行说你要取多少万现金,这段时间银行会为你准备钱,而这与你都没什么关系,然后你只要按预定的时候去取就行了,对你于而言,你们是触发了一个异步动作而已。


并发和并行


并发,Concurrency,即一段时间内多个任务在执行,但不一定是同时在执行,它们可能是交替在运行,也有可能是串行运行的。


并行,Parallelism,这个就是多个任务在同时执行,可以理解为并发里面有一部分任务在并行执行。


单核CPU不会有并行操作,应为一个CPU一次只能执行一条指令,并行操作只存在于多核CPU中。


阻塞和非阻塞


阻塞,Blocking,如果一个线程占用了一个公共资源而没有释放对它的锁,另外别的一些线程想要继续执行就只能等它释放锁,这时候就造成阻塞了。


非阻塞,Non-Blocking,就是没有阻塞,线程可以自由运行,没有锁定公共资源,不相互阻塞运行。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU1231(DP)

Problem Descrption 给定K个整数的序列{ N1, N2, ..., NK }&#xff0c;其任意连续子序列可表示为{ Ni, Ni1, ..., Nj }&#xff0c;其中 1 < i < j < K。最大连续子序列是所有连续子序列中元素和最大的一个&#xff0c; 例如给定序列{ -2, 11, -4, 13, -5, -2 }&…

8核、6核、4核、双核CPU是什么意思

转自&#xff1a; https://blog.csdn.net/he_jian1/article/details/41208915 对于初学者来说&#xff0c;CPU是什么、什么是双核、4核、6核、8核等。下面&#xff0c;就以上的问题&#xff0c;我们做出一一解答。 概念&#xff1a;CPU是什么、做什么用、一般CPU是接在哪里…

一个诡异的可见性问题

转载自 一个诡异的"可见性"问题 之前介绍过可见性的特性&#xff0c;最近做测试的时候发现了一个很诡异的问题&#xff0c;下面看看这三个例子。 test1&#xff1a; test1这个例子加了volatile&#xff0c;所以程序正确退出输出test1 end test2&#xff1a; test2这…

POJ3278(BFS)

Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two mod…

转:认识cpu、核与线程

转自&#xff1a; https://www.cnblogs.com/-new/p/7234332.html 前言&#xff1a;作为一个后台开发人员&#xff0c;我想有必要了解这些基础知识。如果本文有不严谨或者疏忽的地方&#xff0c;请指正。 目录 认识cpu、核心与线程java多线程系列&#xff08;一&#xff09;之j…

java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

转载自 java多线程中的死锁、活锁、饥饿、无锁都是什么鬼&#xff1f; 死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题&#xff0c;如果线程出现了这三种情况&#xff0c;即线程不再活跃&#xff0c;不能再正常地执行下去了。 死锁 死锁是多线程中最差的一种情况…

HDU2159(完全背包)

Problem Descrption 最近xhd正在玩一款叫做FATE的游戏&#xff0c;为了得到极品装备&#xff0c;xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感&#xff0c;但又不得不通过杀怪来升完这最后一级。现在的问题是&#xff0c;xhd升掉最后一级还需n的经验值&#xff…

(转)接口幂等性

转自&#xff1a; https://blog.csdn.net/mingwulipo/article/details/91443355 1、接口调用存在的问题 现如今我们的系统大多拆分为分布式SOA&#xff0c;或者微服务&#xff0c;一套系统中包含了多个子系统服务&#xff0c;而一个子系统服务往往会去调用另一个服务&#x…

高级java必须清楚的概念:原子性、可见性、有序性

转载自 高级java必须清楚的概念&#xff1a;原子性、可见性、有序性 原子性、可见性、有序性是多线程编程中最重要的几个知识点&#xff0c;由于多线程情况复杂&#xff0c;如何让每个线程能看到正确的结果&#xff0c;这是非常重要的。 原子性 原子性是指一个线程的操作是不能…

背包问题总结

参考链接&#xff1a; http://www.cnblogs.com/fengty90/p/3768845.html http://blog.csdn.net/mu399/article/details/7722810 http://blog.csdn.net/xiaowei_cqu/article/details/8191808 http://blog.csdn.net/insistgogo/article/details/11176693 原文&#xff1a;https:…

(转)数据库可靠性/可用性、稳定性RTO/RPO

转 https://blog.csdn.net/luke_wang/article/details/78145517&#xff1b; 在灾难恢复方面&#xff0c;目前业界公认有三个目标值得努力。一是恢复时间&#xff0c;企业能忍受多长时间没有 IT&#xff0c;处于停业状态&#xff1b;二是网络多长时间能够恢复&#xff1b;三是…

HDU2059(DP)

Problem Descrption 据说在很久很久以前&#xff0c;可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后&#xff0c;心中郁闷&#xff0c;发誓要报仇雪恨&#xff0c;于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼&#xff0c;终于练成了绝技&#xff0c;能够毫不休息得以恒…

Java多线程之守护线程实战

转载自 Java多线程之<<守护线程>>实战定义什么是守护线程&#xff1f;与守护线程相对应的就是用户线程&#xff0c;守护线程就是守护用户线程&#xff0c;当用户线程全部执行完结束之后&#xff0c;守护线程才会跟着结束。也就是守护线程必须伴随着用户线程&#x…

转:集群和分布式的区别

转自&#xff1a; https://blog.csdn.net/shuaipu813/article/details/52083289 集群 多台服务器组成的一组计算机&#xff0c;作为一个整体存在&#xff0c;向用户提供一组网络资源&#xff0c;这些单个的服务器就是集群的节点。 集群拥有以下两个特点&#xff1a; 1. 可…

如何quot;优雅quot;地终止一个线程?

转载自 如何"优雅"地终止一个线程&#xff1f;我们的系统肯定有些线程为了保证业务需要是要常驻后台的&#xff0c;一般它们不会自己终止&#xff0c;需要我们通过手动来终止它们。我们知道启动一个线程是start方法&#xff0c;自然有一个对应的终止线程的stop方法&a…

HDU1087

Problem Descrption Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now. The game can be played by two or more than two p…

转-BFF调研-1

转自&#xff1a; https://blog.csdn.net/duola8789/article/details/89332064 前端开发中存在的难问题 多端应用&#xff0c;不同类型客户端对数据、API有个性化的需求服务聚合&#xff0c;单一后端为多个前端团队提供接口&#xff0c;导致跨团队协作低效&#xff0c;资源协…

JDK8新特性之Stream流

转载自 JDK8新特性之Stream流 是什么是Stream流 java.util.stream.Stream Stream流和传统的IO流&#xff0c;它们都叫流&#xff0c;却是两个完全不一样的概念和东西。 流可以简单的说是处理数据集合的东西&#xff0c;可以申明式流式API来处理集合&#xff0c;而不是写一个…

(转)贫血和富血

转自&#xff1a; https://blog.csdn.net/t0404/article/details/51865174 贫血vs富血 我们来回顾一下。在企业架构模式中&#xff0c;业务层的实现一般有两种模式&#xff1a;一种是事务角本模式&#xff08;Transaction script&#xff09;&#xff0c;另一种是领域模型模式…

JDK8的排序大法!!

转载自 屌炸天&#xff0c;JDK8的排序大法&#xff01;&#xff01; 今天总结了下JDK中排序的方法&#xff0c;包括JDK8中强大的lambda表达式及函数式接口运用&#xff0c;不废话&#xff0c;请看下面示例。 public class Test {public static void main(String[] args) {Lis…