软件构造笔记7

这章主要介绍并行

首先区分进程和线程,进程通常独占计算机的全部资源,不共享内存,线程共享内存,每个应用至少有一个线程

java创建线程有俩种方法,一种是直接继承thread类,重写run方法,另一种是实现runable接口,实现run方法,启动线程时应该调用start方法

java提供了interrupt方法来中断线程,但实际上代码收到信号并不会停止运行,但当线程正处于sleep时接到interrupt信号会抛出异常,为了不无视interrupt信号,我们可以用while或者if语句判断一下是否收到信号,决定是否退出

多线程可能会有很多安全隐患,线程安全的四个策略分别是

  1. 限制数据共享:核心思想就是线程之间不共享mutable类型数据,如果数据不共享的话,对数据来说程序就是单线程的了,保证了安全性
  2. 共享不可变的数据类型:这个也很好理解,如果数据类型不可变,各个线程也无法修改
  3. 共享线程安全的可变数据类型:如果一定要使用可变数据类型的话,应该使用线程安全的
  4. 同步和锁:锁机制很有价值,他保证了对数据的独家享用,其他进程无法访问

但是使用锁机制时要避免出现死锁,就是两个锁互相限制,应该避免这种情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值