进程(Process)和线程(Thread)是操作系统中管理和执行任务的两个基本概念,它们之间有以下主要区别:
在之前的文章中,我们简单的介绍了线程诞生的意义和基本概念,采用多线程的编程方式,能充分利用 CPU 资源,显著的提升程序的执行效率。
今天分享一位同学面试上海某游戏公司的面经,同学的技术栈是Java后端,虽然不是大厂,但是一面面试也被问了 25 多个问题,时长也接近 1 小时了
读写锁的内部包含两把锁:一把是读(操作)锁,是一种共享锁;另一把是写(操作)锁,是一种独占锁。在没有写锁的时候,读锁可以被多个线程同时持有。写锁是具有排他性的:如果写锁被一个线程持有,其他的线程不能再持有写锁,抢占写锁会阻塞...
在访问共享资源之前进行加锁操作,在访问完成之后进行解锁操作。按照“是否允许在同一时刻被多个线程持有”来区分,锁可以分为共享锁与独占锁。...
控制同一时间并发线程的数目。能够完成对于信号量的控制,可以控制某个资源可被同时访问的个数。提供了两个核心方法——acquire()方法和release()方法。acquire()方法表示获取一个许可,如果没有则等待,release()方法则是...
在Java中有两种锁,一种是内置锁synchronized,一种是显示锁Lock,其中Lock 锁是可中断锁,而 synchronized 则为不可中断锁。所谓的中断锁指的是锁在执行时可被中断,也就是在执行时可以接收interrupt的通知,从而中断锁执行,不可...
Java是一种面向对象的编程语言,具有良好的并发编程能力。在多线程并发编程中,线程安全和锁机制是极其重要的两个概念。下面将介绍什么是线程安全和锁机制,以及如何实现。...
上期文章分享了ShutdownHook的API和基本使用,但是少了一些实际工作中的案例,总感觉没啥大用一样。
乐观锁(Optimistic Locking)是一种并发控制的策略,用于处理多个用户或线程同时对同一数据进行更新的情况。它的基本思想是在更新数据之前,先检查数据是否被其他用户或线程修改过,如果没有则执行更新操作,如果有则进行相应的...