并发编程介绍

1、进程和线程的区别


进程:进程是程序的一次运行,是系统执行程序的基本单位,系统执行程序是指进程从创建,运行到消亡的过程

线程 :一个进程在运行的时候可以产生多个线程,进程可以产生多个同类的线程,共享进程的堆和方法区自营,线程有自己的程序计数器,虚拟机栈和本地方法栈,所以线程是轻量级别的进程

2、并发和并行的区别


并发: 是指两个及两个以上的作业在同一时间段内执行

并行 :是指两个及两个以上的作业在同一时刻执行 

3、同步和异步的区别


同步:发出一个调用的时候,在没有得到结果的时候,该调用就不能返回,一直在等待 

异步:发出调用后,不用等待返回结果,该调用可以直接返回

4、为什么使用线程


线程还可能带来的 问题是死锁,内存泄漏,线程不安全 

线程池的作用:

1、降低资源消耗,可以重复利用已经创建的线程,降低重复创建和销毁线程造成的消耗

2、提升 响应速度: 当任务过来的时候,不用等待线程进行创建

3、提升管理  :可以对线程进行统一的分配,调优和监控

5、线程的生命周期和状态


1、NEW :初始化状态

2、RUNABLE :运行状态

3、WAITING :等待状态

4、BLOCK :阻塞状态

5、TIME-WAITING :超时等待状态

6、Terminate :终止状态

6、如何避免程序死锁


什么是死锁:多个线程被阻塞,它们中多个或全部在等待某个资源的释放,由于线程被无限期阻塞,因此程序不可能正常终止

7、sleep() 和wait() 的区别


两者都可以阻塞线程的执行

区别:

1、sleep()没有释放锁,而wait() 会释放锁

2、wait() 用于线程之间的通信,而sleep() 用于线程的暂停

3、 sleep 执行完之后,线程会自动唤醒,而wait()需要调用notify 来进行唤醒

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值