- 博客(5)
- 收藏
- 关注
原创 池化技术及线程池
如果阻塞队列已空且扩大的线程池空间也没有被用到(只有核心线程池的数量被用到),扩大的线程池超时会被释放。当线程池中有任务需要执行时,线程池会判断如果线程数量没有超过核心数量就会新建线程池进行任务执行;如果线程池中的线程数量已经超过核心线程数,这时候任务就会被放入阻塞队列中排队等待执行;如果任务队列超过最大队列数,并且线程池没有达到最大线程数,就会扩大到最大线程池大小;如果超过了最大线程数+最大队列数,就会执行拒绝执行策略;
2023-09-07 16:03:19 36 1
原创 java并发锁
当多个线程尝试使用 CAS 同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试,适用于写少读多。一种悲观锁,可以用于修饰方法或者代码块,当某个线程调用该对象的synchronized方法或者访问synchronized代码块时,这个线程便获得了该对象的锁,其他线程访问这个方法时就会被阻塞,适用于写多的场景。Synchronized可重入锁,不可中断,非公平,Lock支持公平锁与非公平锁,默认非公平锁;
2023-08-26 17:29:56 27
原创 进程与线程
进程的创建、销毁与切换存在着较大的时空开销,线程被设计成进程的一个执行路径,同一个进程中的线程共享进程的资源,因此系统对线程的调度所需的成本远远小于进程。每个进程拥有独立的地址空间,地址空间包括代码区、数据区和堆栈区,进程之间的地址空间是隔离的,互不影响。进程之间的切换会有较大的开销。一个程序,进程依赖于程序运行而存在,进程是动态的,程序是静态的;进程是操作系统进行资源分配和调度的一个独立单位;并发:多线程操作同一资源,CPU一核,快速交替。并行:CPU多核,多线程同时执行。
2023-08-26 15:38:32 21
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人