并发(一)线程的相关概念

进程与线程

问题:什么是进程,什么是线程

进程是程序的一次执行过程,是一个动态的概念,进程是系统资源分配的基本单位,每一个进程都拥有独立的地址空间,进程之间无法直接相互通信,需要借助管道、文件、套接字等手段

线程是进程的一个执行单元,是 CPU 调度和执行的基本单位


问题:进程与线程有什么区别

1、进程是执行中的一段程序,而一个进程执行中的每个任务即为一个线程。如果把进程比作一辆货车,那么线程就是车厢

2、一个线程只能属于一个进程,而一个进程能包含多个线程

3、进程之间不会相互影响,而线程之间容易相互影响

4、线程的开销比进程少

5、不同进程无法共享资源,而同一进程下的不同线程可以轻易共享资源

6、线程无地址空间,它包括在进程的地址空间中

什么是 J.U.C

JUC 是 java.util.concurrent 工具包的简称,是专门用来处理多线程并发的工具包

并发与并行

并发指的是在单核 CPU 下,在同一个时间段内,多个事件的快速交替实行模拟多线程,CPU 给每个线程分配时间片,会出现 上下文切换 问题

并行指的是在多核 CPU 下,多个事件在 同一时刻 发生,多个线程同时执行

监视器

监视器即管程(Monitor),就是我们说的锁。管程是一种同步机制,它保证在同一个时间内,只有一个线程访问被保护数据或代码

同步与异步

同步:表示需要等到前一个任务执行完毕之后,才能进行下一个任务

异步:不同的任务之间不会相互等待

JUC 下的主要类

1、锁相关类。如 Lock,ReentrantLock

2、线程管理类。如 Thead、ThreadLocal

3、线程同步类。如 CountDownLatch、CyclicBarrier、Semaphore

4、并发集合类。如 ConcurrentHashMap,ConcurrentSkipListMap,CopyOnWriteArrayList,BlockingQueue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值