Java并发编程
文章平均质量分 65
北漂编程小王子
程序猿的工作日记
展开
-
future.get方法阻塞问题的解决,实现按照任务完成的先后顺序获取任务的结果
1、FutureFuture模式是多线程设计常用的一种设计模式。Future模式可以理解成:我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时间之后,我就便可以从Future那儿取出结果。Future提供了三种功能:判断任务是否完成能够中断任务能够获取任务执行的结果向线程池中提交任务的submit方法不是阻塞方法,而Future.get方法是一个阻塞方法,当submit提交多个任务时,只有所有任务都完成后,才能使用get按照任务的提交顺序得原创 2021-10-22 16:40:34 · 5676 阅读 · 0 评论 -
读写锁 ReadWriteLock实现权限控制
项目组实际需要,实现菜单和后台接口的操作权限控制大概思路如下:首先是将前段页面上的菜单层级以及系统中所有的后台接口,通过数据库表的方式配置起来,我们项目是按照菜单以及后台接口两种类型权限,菜单类型就是登录后能看到那些菜单(例如:系统管理菜单,人员管理,角色管理等),接口就是当前登录用户具有那些后台的接口权限(例如:保存用户接口、删除用户接口、编辑用户等),将系统中的角色以及权限配置好映射关系表,用户登录系统后,拿到用户信息的同时,也返回用户的菜单,进入操作页面后,进行增删查改操作的时候,统一被拦截器拦截原创 2021-03-05 11:28:07 · 167 阅读 · 2 评论 -
读写锁 ReadWriteLock 适用场景
前言在没有读写锁之前,ReentrantLock 虽然可以保证了线程安全,但是也浪费了一定的资源,因为如果多个读操作同时进行,其实并没有线程安全问题,我们可以允许让多个读操作并行,以便提高程序效率。但是写操作不是线程安全的,如果多个线程同时写,或者在写的同时进行读操作,便会造成线程安全问题。我们的读写锁就解决了这样的问题,它设定了一套规则,既可以保证多个线程同时读的效率,同时又可以保证有写入操作时的线程安全。整体思路是它有两把锁,第 1 把锁是写锁,获得写锁之后,既可以读数据又可以修改数据,而第 2转载 2021-03-05 10:54:33 · 3325 阅读 · 3 评论