java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥

JAVA中线程在什么时候需要同步和互斥

关注:265  答案:6  mip版

解决时间 2021-01-27 08:10

e6cb1a03ad541b3098697807b7bf1798.png

提问者时光易老

2021-01-27 03:32

JAVA中线程在什么时候需要同步和互斥?(假如这题是考试题,要怎样回答?)

详细点

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家樱花雨梦

2021-01-27 04:13

例如访问同一个资源:

例如车站的售票系统,一定是多个线程同时运行售票的吧。

有编号为10000这张票,那么线程thread1正在卖它的时候,其余的线程就不能也卖这张票了。

另一个就是著名的生产者-消费者问题。类比一下,老爸挣钱,打到银行卡里,儿子花钱。(假设卡里有钱的话就暂时不打钱)

对于老爸老说,如果要打钱,查看一下卡,如果有钱,就暂时不放,并通知儿子已经有钱;如果没钱,当然就打钱了。

对于儿子来说,取钱时如果有钱就取,如果没有就等待,并通知老爸没钱了。

这就是同步了。

不知道你理解不?

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼吃貨一枚

2021-01-27 07:57

卖火车票、飞机票,两个人同时在两个地方买的两张票作为不能相同

e6cb1a03ad541b3098697807b7bf1798.png

2楼全球变暖丶我心却变冷

2021-01-27 06:32

我能这样理解吗?

上厕所时,如果只有一个位置,我必须等上一个人出来.

上厕所时,如果不只一个位置,我不用等上一个人出来. 就可以进去(假设有空位)

:-D

e6cb1a03ad541b3098697807b7bf1798.png

3楼柒夏锦年

2021-01-27 06:05

面试的话 你就这样告诉他

线程的同步意味安全 譬如你取钱 你的执行语和我用的是相同对象 那你要在卡上扣除的钱数扣在我卡上了 怎么办

至于异步 是JAVA的闪亮点 设想下你搜索时 并没有提交 只打上关键字 就出现了很多提示 ,另外 异步在 体育节目方面的应用 在网上 你可以宣称 你的产品 可以让顾客看到赛场的比赛时钟 这就是用异步实现的

e6cb1a03ad541b3098697807b7bf1798.png

4楼有你才幸福

2021-01-27 05:54

何时需要同步 在多个线程同时访问互斥(可交换)数据时,应该同步以保护数据,确保两个线程不会同时修改更改它。 对于非静态字段中可更改的数据,通常使用非静态方法访问 对于静态字段中可更改的数据,通常使用静态方法访问。 1、线程同步的目的是为了保护多个线程反问一个资源时对资源的破坏。 2、线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该对象的其他非同步方法。 3、对于静态同步方法,锁是针对这个类的,锁对象是该类的class对象。静态和非静态方法的锁互不干预。一个线程获得锁,当在一个同步方法中访问另外对象上的同步方法时,会获取这两个对象锁。 4、对于同步,要时刻清醒在哪个对象上同步,这是关键。 5、编写线程安全的类,需要时刻注意对多个线程竞争访问资源的逻辑和安全做出正确的判断,对“原子”操作做出分析,并保证原子操作期间别的线程无法访问竞争资源。 6、当多个线程等待一个对象锁时,没有获取到锁的线程将发生阻塞。 7、死锁是线程间相互等待锁锁造成的,在实际中发生的概率非常的小。真让你写个死锁程序,不一定好使,呵呵。但是,一旦程序发生死锁,程序将死掉。 使用锁定还有一些其他危险,如死锁(当以不一致的顺序获得多个锁定时会发生死锁)。甚至没有这种危险,锁定也仅是相对的粗粒度协调机制,同样非常适合管理简单操作,如增加计数器或更新互斥拥有者。如果有更细粒度的机制来可靠管理对单独变量的并发更新,则会更好一些;在大多数现代处理器都有这种机制。

e6cb1a03ad541b3098697807b7bf1798.png

5楼爷自有爷的范

2021-01-27 04:50

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

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

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

相关文章

5g虚拟技术旅游_5G造就文旅新时代,驴迹科技探索智慧出行创新领域

随着我国5G技术的成熟与普及,5G为文旅产业提供新的解决方案,使之焕发新的活力。以5G“新基建”为依托,结合VR虚拟实境以及云计算、高清视频等技术交叉应用,对旅游业的发展带来广泛而深刻的影响,给游客更新鲜、更具有科…

java静态方法库api下载_Java——静态方法库和抽象数据类型

静态方法封装了由一系列语句所描述的算法。方法需要参数并根据参数计算出来的某种数据类型的返回值(int等)或者产生某种副作用(void)。实例如下&#xff1a;//实例1public static int abs(int x) //计算一个整数的绝对值{if(x<0)return -x;else return x;}//实例2public sta…

图解leetcode初级算法python版 pdf_图解LeetCode初级算法(Python版)

第1章 浅谈算法1&#xff0e;1 算法概述1&#xff0e;2 度量算法1&#xff0e;2&#xff0e;1 时间复杂度1&#xff0e;2&#xff0e;2 空间复杂度1&#xff0e;3 Python&Pythonic第2章 基础算法之排序2&#xff0e;1 冒泡排序2&#xff0e;1&#xff0e;1 原理2&#xff0…

java指定sql生成xml_SQL Server根据查询结果,生成XML文件

/*bcp 不是内部或外部命令&#xff0c;也不是可运行的程序&#xff1f;看看在C:\Program Files\Microsoft SQL Server\80\Tools\Binn里面有没有bcp.exe这个文件然后看看path里面加C:\Program Files\Microsoft SQL Server\80\Tools\Binn这个目录没有.右键我的电脑--属性--高级--…

python实现雪花飘落的效果_使用javascript实现雪花飘落的效果

看了javascript网页特效实例大全中的图片飘下的效果实例&#xff0c;觉得值得动手学习下。就把图片改成雪花图&#xff0c;完成一个雪花飘下的效果。并且&#xff0c;其中有些内容比较陈旧了&#xff0c;那么就学者改掉吧。包括&#xff1a;1.对left和top的操作仅支持IE浏览器&…

java飞机大战分数累加代码_JAVA 基础编程练习题39 【程序 39 分数累加】

39 【程序 39 分数累加】题目&#xff1a;编写一个函数&#xff0c;输入 n 为偶数时&#xff0c;调用函数求 1/21/4...1/n,当输入 n 为奇数时&#xff0c;调用函数 1/11/3...1/npackage cskaoyan;public class cskaoyan39 {org.junit.Testpublic void sum() {java.util.Scanner…

分块排序算法 java_十大经典排序算法最强总结(含JAVA代码实现)

转载自&#xff1a;https://www.cnblogs.com/guoyaohua/p/8600214.html0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定&#xff1a;如果a原本在b前面&#xff0c;而ab&#xff0c;排序之后a仍然在b的前面&#xff1b;不稳定&#xff1a;如…

synchronized锁升级_synchronized详解以及锁的膨胀升级过程

点击上方"码之初"关注&#xff0c;选择"设为星标"与精品技术文章不期而遇来源&#xff1a;www.cnblogs.com/cxiaocai/p/12189848.html架构之路远且艰辛&#xff0c;但是学习的脚步始终不能停止&#xff0c;今天聊一聊synchronized。synchronized是jvm内部的…

地铁看java书女生_地铁上背单词的女孩

公历一月底的成都&#xff0c;几乎已经到了成都这座城市一年当中最冷的时候了。早上出门的时候天几乎是全黑的&#xff0c;我骑着自行车前往地铁站&#xff0c;在寒风中我不禁缩了缩脖子。因为我上班比较远&#xff0c;所以我出门比较早&#xff0c;这个时候街上的行人还很少&a…

python crm_Python CRM项目一

1 from django.db importmodels2 from django.contrib.auth.models importUser3 #Create your models here.4 classCustomer(models.Model):5 客户信息表6 name models.CharField(max_length32,nullTrue,blankTrue)7 qq models.CharField(max_length64,uniqueTrue)8 qq_name …

python arcgis批量绘图_ARCGIS中Python实现批量裁剪

《ARCGIS中Python实现批量裁剪》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《ARCGIS中Python实现批量裁剪(1页珍藏版)》请在人人文库网上搜索。1、程序代码&#xff1a;pythonview plaincopyprint?1. importarcpy2. arcpy.CheckOutExtension(spatial)3. arcpy.gp.…

python123自定义幂函数_python基础之函数

python 函数函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。函数能提高应用的模块性&#xff0c;和代码的重复利用率。你已经知道Python提供了许多内建函数&#xff0c;比如print()。但你也可以自己创建函数&#xff0c;这…

java 搜索引擎 关键词高亮_和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮(示例代码)...

前面几篇文章详细讲解了 ElasticSearch 的搭建以及使用 SpringDataElasticSearch 来完成搜索查询&#xff0c;但是搜索一般都会有搜索关键字高亮的功能&#xff0c;今天我们把它给加上。系列文章环境依赖本文以及后续 es 系列文章都基于 5.5.3 这个版本的 elasticsearch &#…

python词汇网络分析_8个Python高效数据分析的技巧!

文章来源于网络来源&#xff5c;CSDN这篇文章介绍了8个使用Python进行数据分析的方法&#xff0c;不仅能够提升运行效率&#xff0c;还能够使代码更加“优美”。定义某种列表时&#xff0c;写For 循环过于麻烦&#xff0c;幸运的是&#xff0c;Python有一种内置的方法可以在一行…

改变php二维数组的值_php如何修改二维数组中的值?

php修改二维数组中值的方法&#xff1a;1、通过【for($i 0; $i < count(Array()); $i)】语句修改&#xff1b;2、通过foreach($users as &$user)语句修改。php修改二维数组中值的方法&#xff1a;1、二维数组可以通过for($i 0; $i < count(Array()); $i)这种形式…

华为python673集_python库-collections模块Counter类

Counter类主要是用来跟踪值出现的次数。它是一个无序的容器类型&#xff0c;以字典的键值对形式存储&#xff0c;其中元素作为key&#xff0c;其计数作为value。demo:all_words [] # 列表里面是汉字(可重复)counter Counter(all_words) # 返回 dict Counter类的目的是用来跟踪…

php下载 微信头像图片_php保存微信用户头像到本地或者服务器的完美方案!

//方法一&#xff1a;//推荐用该方法$header array(User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0,Accept-Language: zh-CN,zh;q0.8,en-US;q0.5,en;q0.3,Accept-Encoding: gzip, deflate,);$urlhttp://wx.qlogo.cn/mmopen/vi_3…

php 预防循环发短信_php短信接口发送短信失败,罪魁祸首原来在这里

随着国民经济的高速发展&#xff0c;短信的应用也逐渐商业化&#xff0c;很多企业、商家开始使用php短信接口来进行推广、营销或内部管理&#xff0c;只是个别的商家在应用php短信接口的时候却遇到了短信发送失败的现象&#xff0c;这到底是因为商家操作有误&#xff0c;还是因…

python实时显示温度变化_python实时温度绘制

我目前正在做一个项目&#xff0c;它需要实时监控各种量&#xff0c;如温度、压力、湿度等。我正在采用一种方法&#xff0c;即使用matplotlib和drwnow绘制一个图形。在HOST "localhost"PORT 4223UID1 "tsJ" # S1from tinkerforge.ip_connection import…

jlabel字怎么变化_怎样才能把字写好?详解最科学的练字方法及步骤

一&#xff1a;正确的学习之路1&#xff1a;临帖从古到今&#xff0c;临帖是学习书法最基本的方法&#xff0c;没有一个书法家是没有临过帖的。2&#xff1a;专注专注学一个书法家的字&#xff0c;专心致志&#xff0c;认真临写&#xff0c;持之以恒&#xff0c;直到形同神似。…