
并发编程
文章平均质量分 77
多线程
silentic
准码农
展开
-
分布式技术
分布式锁单机多线程可以通过Java内置的锁来保证线程安全,但无法解决多机器的并发问题。数据库分布式锁维护一张具有方法名字段唯一索引的表,想要执行某方法时,需要向表中插入记录,成功则获取锁,方法执行完毕后删除记录。问题:1.锁不可重入。需要记录获取锁的线程信息,允许同一线程重复获取锁2.锁失效。插入成功后数据库宕机,记录没有删除。可以设置一个失效时间,定期删除过期记录。Redis分布式锁获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的原创 2022-01-14 18:41:21 · 411 阅读 · 0 评论 -
Java并发基础
进程与线程的定义进程是操作系统进行资源分配的最小单位,线程是进行运算调度的最小单位。一个进程在执行过程中可产生多个线程,这些线程共享进程的堆和方法区资源。Java创建线程的方式继承Thread类实现Runnable接口实现Callable接口(线程返回值通过FutureTask封装)线程的生命周期wait()和sleep()的区别两者都暂停了线程的执行,但wait()释放了锁,而sleep()没有。wait()的线程不会主动苏醒,需要其他线程调用同一对象的notify()或者not原创 2021-12-30 23:59:33 · 244 阅读 · 0 评论