多线程

多线程

多任务

基于进程: 每个独立的"自包容的"应用程序,有自己的地址空间,进程:拥有独立的内存空间,耗费切换成本高

允许同时运行两个或多个程序。

多任务处理环境中,线程是最小的处理单位。

基于线程:进行当中产生独立的新路径,是进程内部单一的顺序控制流,

基于线程所需的开销更少

在多任务中,各个进程需要分配他们自己独立的地址空间

多任务当中,可以共享相同的地址空间,并且共同分享同一个进程

进程间调用设计的开销避险城建通信多

线程间的切换成本比进程间切换成本低

线程安全:当多个线程同时操作统一资源的时候

加锁机制————同步锁(关键字:synchronized)

解决线程安全性问题,同步的方式:

1、在资源身上加同步锁——称之为"同步方法"

public  synchronized void  display(string  name){
for(int i=0;i<5;i++){
system.out.println()
}
}

2、资源不加锁,而是在线程的调用处进行加"同步锁"——称之为”同步块“。

synchronized(this.rs){
this.rs.display(this.getName());
}

死锁:当两个线程循环依赖于一对同步对象时将发生死锁。死锁很少发生,一旦发生就很难调试。

线程之间的通信机制(wait-notify机制)

使用wait()、notify()、notifyAll()三个方法,是作为Object类中的final方法实现的。仅在synchronized方法中才能被调用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值