什么是线程,线程有什么作用,怎么判断一个线程安全与不安全?

想要知道线程是否安全,首先要明白什么是线程,然后才能了解它是否处于安全状态。

1、什么是线程?

线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。

另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

2、线程的作用

一个线程可以创建和撤销另外一个线程,同一线程中的多个进程之间可以兵法执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。

3、为什么引入线程?

如果说引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

4、什么是线程安全与什么是线程不安全?

线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才能使用,不会出现数据不一致或者读脏数据。

线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

https://www.cnblogs.com/olddriver123/p/8250812.html

5、线程安全问题产生的原因

1、线程任务中处理到共享数据;

2、线程任务中有多条对数据共享的操作,一个线程在对共享数据进行操作,另外的线程也参与课该运算当中垃圾,造成了数据的错误。

解决的办法:只要摆正多条操作共享数据的代码转某一时间段,被一条线程所执行,在执行期间其他线程不允许参加运算。

6、如何保证安全

使用synchronized关键字。

synchronized(对象){

需要被同步的代码

}

7、如何分析线程是否存在安全隐患

1、线程任务中是否存在共享数据

2、是否有多行代码操作共享数据

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值