线程

程序:一系列功能的集合。
进程:程序下独立运行的多个功能个体(一个程序下运行多个进程),每个进程有固定的计算机资源。
线程:进程下独立存在的单个小功能(一个进程下可以运行多个线程),线程共享进程的资源。
多线程的常用实现方式:
类1继承Thread:重写run方法。 new 类1对象,调用start方法(从当前类1对象的run方法第一行开始执行)。
类2 实现Runnable接口:实现run方法。 new类2的对象,作为构造参数传入一个Thread对象,调用Thread对象的run方法。
线程的生命周期:1.可运行状态。 2.运行状态。 3.阻塞状态。 1.等待阻塞,由于wait方法导致的线程阻塞。 2.同步阻塞,由于线程同步机制,导致的线程阻塞(syn)。 3.其他阻塞,由于线程方法导致的阻塞,sleep,join,流导致的阻塞。
死亡状态(正常结束,异常结束)。
注意:线程不能起死回生。
线程异步:线程之间的运行互不影响。
线程同步:同一时间只能有一个线程运行。
Synchronized关键字:
修饰成员方法:该方法为同步方法(锁对象的同步资源),当有一个线程进入了该方法,该线程获得当前对象的同步锁。其他线程若要使用该对象的同步资源,需要等到同步锁的释放,并且抢到同步锁。
修饰静态方法:锁住当前类的所有同步的静态资源。当有一个线程得到了类的同步锁,那么其他线程要方法静态的同步资源只能等待类的锁释放。
同步块 synchronized(对象1){
代码
}
只有当线程得到对象1的同步锁并且得到该代码块所在方法的同步锁时才能够运行该块的内容。
线程死锁
广义:由于进程资源不足,导致线程无法结束的阻塞情况。
狭义:A,B线程都需要得到C,D两个对象的同步锁才能运行结束,现在A拥有C,B拥有D,死锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值