线程简介及安全性

这篇具有很好参考价值的文章主要介绍了线程简介及安全性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 线程的优点
  • 发挥多处理器的强大功能
  • 建模的简单性 为模型中的每种类型任务都分配一个专门的线程
  • 异步事件的简化处理
  • 响应更灵敏的用户界面
2. 线程带来的风险
  • 安全性问题
  • 活跃性问题 如发生死锁,无限等待
  • 性能问题 如频繁的上下文切换:保存与恢复上下文,丢失局部性,CPU花在线程切换上更多开销而不是线程上;如同步机制,抑制某些编译器优化,使内存缓存区内存无效,增加共享内存总线流量
3. 线程安全性

如果当多个线程访问同一个可变的状态变量时没有使用合适的同步,那么程序就会出现错误。有三种方式可以修复这个问题:
√ 不在线程之间共享该变量
√ 将状态变量修改为不可变变量
√ 在访问状态变量时使用同步

无状态对象一定是线程安全的。
无状态对象:他既不包含任何域,也不包含对其他类中域的引用
竞态条件: 由于不恰当的执行时序而出现的不正确的结果
竞态条件出现常见操作: 先检查后执行,如延迟初始化; 读取-修改-写入, 如i++
3.1 内置锁与重入

JAVA中提供了一种内置锁机制支持原子性:同步代码块
同步代码块分为两部分:
1)锁的对象引用 synchronized (lock) { }
2)锁保护的代码块

public void synchronized count() {
	.....
}

内置锁是可重入的,如果某个线程试图获得该线程已经获得的锁,那么该请求会成功
重入实现方式: 为每个锁关联一个获取计数器与一个所有者线程,线程进入则+1,线程退出则-1。当计数器为0,该锁将被释放

3.2 活跃性与性能

当实现某个同步策略时,一定不要盲目为了性能而牺牲简单性(这可能会破环安全性)

当执行时间较长的计算或者可能无法完成的操作时(例如,网络I/O或控制台I/O),一定不要持有锁文章来源地址https://www.toymoban.com/news/detail-415905.html

到了这里,关于线程简介及安全性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云计算:云计算安全性有哪些?_云计算技术的安全性,这些知识你必须拿下

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月23日
    浏览(25)
  • 什么是前端安全性(front-end security)?列举一些前端安全性的最佳实践

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月05日
    浏览(24)
  • 《网络安全0-100》低层协议安全性

    对于网络层,IP协议是其中一个非常重要的协议。网络层的IP地址相当于数据链路层的Mac地址。协议字段如下,每行4字节,总共4*5=20字节。   IP协议安全性:IP协议不能保证数据就是从数据包中给定的源地址发出的,你绝对不能靠对源地址的有效性检验来判断数据包的好坏。

    2024年02月11日
    浏览(22)
  • 【MySQL】-安全性控制

    用户(User) MySQL创建用户: create user 用户名 identified by 用户登录密码; 通常用户名可包含域名,限定用户在该域名内登录再有效。 alter user语句可重置用户密码: ALTER USER user IDENTIFIED BY ‘new_password’; 权限 MySQL常用的权限有: all: 所有权限(grant option除外) alter: alter table权限 a

    2023年04月26日
    浏览(20)
  • 商用密码安全性评估

    商用密码应用安全性评估(简称“密评”)指在采用商用密码技术、产品和服务集成建设的网络和信息系统中,对其密码应用的合规性、正确性和有效性等进行评估。 01办理依据 GM/T0054-2018《信息系统密码应用基本要求》 《信息系统密码测评要求(试行)》 《商用密码应用安

    2024年02月06日
    浏览(20)
  • 数据库——安全性

    智能2112杨阳 1 、设计用户子模式 2 、根据实际需要创建用户 角色 及 用户, 并 授权 3 、针对不同级别的用户定义不同的 视图 ,以保证系统的安全性 先创建四类用户 角色 : 管理员 角色 Cusm 、 客户 角色 Supp 、供货商 角色 Admin 、商家销售工作人员 角色 Salor 。 源码: cre

    2024年02月04日
    浏览(21)
  • 信息安全性测试

    信息安全性测试是确保产品或系统能够有效地保护信息和数据,使得用户、其他产品或系统的访问权限与其授权类型和级别相一致的一系列检查过程。信息安全性测试也应该是一个持续的过程,确保信息系统能够抵御恶意攻击,并保护数据的完整性、可用性和保密性。通常与

    2024年02月20日
    浏览(19)
  • 智能合约开发~~安全性

    最低安全限度: ~ 所有代码应该被存在于一个版本控制系统当中,例如 git ~ 所有的代码修改都应该通过拉取请求来进行 ~ 所有的拉取请求都应该有至少一个审核员。 如果这是一个个人项目,请考虑寻找另一位个人作者和一个交易代码审核员。 ~ 使用开发以太坊环境(请参阅

    2024年01月17日
    浏览(22)
  • 安全实践:保障 Kubernetes 生产环境的安全性

    ▲ 点击上方\\\"DevOps和k8s全栈技术\\\"关注公众号 Kubernetes(简称 K8s)是一个强大的容器编排平台,广泛应用于生产环境中。然而,与其功能强大相对应的是对安全性的高要求。在生产环境中,我们必须采取一系列措施来保护 Kubernetes 集群免受潜在的威胁和攻击。本文将介绍一些关

    2024年02月03日
    浏览(24)
  • 【Docker】Docker安全性与安全实践(五)

    前言: Docker安全性的作用和意义在于确保容器化应用程序和镜像的隔离性、保护数据和系统资源、防止恶意攻击,以及提高应用的整体安全性。 Docker是一种流行的容器化技术,它可以帮助开发者将应用程序和其依赖项打包到一个独立的容器中,以便在不同环境中进行部署和

    2024年02月15日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包