什么是线程安全的类,如何设计线程安全的类

如题... 如题 展开
 我来答
此人无效
2016-03-22 · 超过70用户采纳过TA的回答
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:99.9万
展开全部
不同的线程操作同样的资源就存在安全问题,线程安全的类就比如一个房间在同一时刻只能有一个人进入,另外一个人想要进去必选等前面那个人出来,这就是线程安全的。设计线程安全的类有一个同步的方法,用synchronized这个关键字修饰需要同步的函数,也可以synchronized(锁){代码}的形式同步一部分代码,注意这个中间的 锁 可以是任何一个对象,但是必须是同一个对象,可以在类专门创建一个Object对象来作为锁也可以用其他的对象,只要确保锁的唯一(他是不变的不管在那个线程中指的都是同一片内存),希望是你要的答案,不是也木关系会有大神给你解答的。
爱你不要理由呵
推荐于2018-05-15 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:74
采纳率:100%
帮助的人:53.4万
展开全部
简单来说就是多线程的时候,多线程同时修改同一个类的时候,由于访问顺序随机导致类功能出错,至于线程安全类设计方法很多的,Java可以用synchronize标识类,只允许一个线程在同一时间访问它,选择线程安全的数据类型例如ArrayList,数组是不安全的,你可以多去百度查
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heao19861007
2016-03-07 · TA获得超过1712个赞
知道小有建树答主
回答量:1163
采纳率:38%
帮助的人:290万
展开全部

  在设计线程安全类的过程中,需要包含一下三个基本要素:

  1. 找出构成对象状态的所有变量。

  2. 找出约束状态变量的不变形条件。

  3. 建立对象状态的并发访问管理策略。

  要分析对象的状态,首先从对象的 域开始。。如果对象中所有的域都是基本类型的变量,那么这些域将构成对象

  的全部状态。程序清单中的Counter只有一个域value,因此这个域就是Counter的全部状态。对于含有n个基本类型

  的对象,其状态就是这些构成的n元祖。二维点的状态就是它的坐标值(x,y)。如果在对象的域中引用了其他对象,

  那么该对象的状态将包含被引用对象的域。例如,Linkedlist的状态就包括该链表中所有节点对象的状态。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式