线程本地存储

防止任务在共享资源上产生冲突的第二种方式是根除对变量的共享。线程本地存储是一种自动化机制,可以为使用相同变量的每个不同线程都创建不同的存储。因此,如果你有5个线程都要使用变量x所表示的对象,那么线程本地存储就会生成5个用于x不同的存储块。主要是他们使得你可以将状态与线程关联起来。

线程状态:

一个线程可以处于以下四种状态之一:

1)新建(new):当线程创建时,它只会短暂的处于这种状态,此时它已经分配了必须的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了,之后调度器把这个线程转变可运行状态或阻塞状态。

2)就绪(Runnable):在这种状态下,只要调度器把时间片分配给线程,线程就可以运行。也就是说在任意时刻,线程可以运行也可以不运行,只要调度器能分配时间片给线程,他就可以运行;这不同于阻塞和死亡状态。

3)阻塞(Blocked):线程能够运行,但有某个条件阻止它的运行。当线程处于阻塞状态时,调度器将忽略线程,不会分配线程任何CPU时间。知道线程重新进入就绪状态,它才有可能执行操作。

4)死亡(Dead):处于死亡或者终止状态下的线程将不可调度,并且再也得不到cpu时间片。

进入阻塞状态

1)通过调用sleep(),进入休眠状态

2)通过调用wait()使线程挂起。直到线程得到notify()或notifyAll()

3)任务在等待某个输入完成

4)任务试图在某个对象上调用其同步控制方法,但是对象锁不可用。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值