永发信息网

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

答案:3  悬赏:80  手机版
解决时间 2021-03-17 19:18
如题
最佳答案
不同的线程操作同样的资源就存在安全问题,线程安全的类就比如一个房间在同一时刻只能有一个人进入,另外一个人想要进去必选等前面那个人出来,这就是线程安全的。设计线程安全的类有一个同步的方法,用synchronized这个关键字修饰需要同步的函数,也可以synchronized(锁){代码}的形式同步一部分代码,注意这个中间的 锁 可以是任何一个对象,但是必须是同一个对象,可以在类专门创建一个Object对象来作为锁也可以用其他的对象,只要确保锁的唯一(他是不变的不管在那个线程中指的都是同一片内存),希望是你要的答案,不是也木关系会有大神给你解答的。
全部回答
在设计线程安全类的过程中,需要包含一下三个基本要素: 1. 找出构成对象状态的所有变量。 2. 找出约束状态变量的不变形条件。 3. 建立对象状态的并发访问管理策略。   要分析对象的状态,首先从对象的 域开始。。如果对象中所有的域都是基本类型的变量,那么这些域将构成对象   的全部状态。程序清单中的Counter只有一个域value,因此这个域就是Counter的全部状态。对于含有n个基本类型   的对象,其状态就是这些构成的n元祖。二维点的状态就是它的坐标值(x,y)。如果在对象的域中引用了其他对象,   那么该对象的状态将包含被引用对象的域。例如,Linkedlist的状态就包括该链表中所有节点对象的状态。
简单来说就是多线程的时候,多线程同时修改同一个类的时候,由于访问顺序随机导致类功能出错,至于线程安全类设计方法很多的,Java可以用synchronize标识类,只允许一个线程在同一时间访问它,选择线程安全的数据类型例如ArrayList,数组是不安全的,你可以多去百度查
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一般便利店都卖什么饮料
大陆去香港订房只能订内宾房吗?
王小波在白银时代里有一句话,未来的世界是银
西安秦始皇兵马俑,华山,在回到甘肃平凉怎么
200317读作二十万三百一十七对不对?
西里·咖啡馆地址在什么地方,想过去办事
邳这个怎么念什么?_??
现金支票34000大写怎么写
虾满缘潮州烧烤(泗泾店)地址在什么地方,想过
中国重汽国三336马力高顶气门间隙
丰镇属于山西吗?
悲剧了,DNF一直往上走,求助
无机生态装饰板榆林地区总代理地址在什么地方
千叶珠宝钻戒怎么样?婚戒选千叶的可以吗?
驾照丢失填什么表格
推荐资讯
大张庄村村我想知道这个在什么地方
怎样看色环电阻阻值的
微信朋友圈发不出图片也看不见图片怎么办
我想问问 为什么我用英文的Siri 对她说那些网
找两本书,《男人就爱吃这套》《女人其实都想
恰到好处的幸福 里的精彩语段
胜利油田分公司油气集输总厂职工培训学校我想
要学建筑设计需要那些基础?
从合肥市第42中到28中学做多少路,有多少站
中国湖南移动流量套餐超出后怎么收费
大话2昨天黄金领悟了个悬刃,这技能怎么样啊
黄山里面有什么东西?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?