- 博客(7)
- 收藏
- 关注
原创 Synchronized与ReentrantLock的区别
相似点: 这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统需要在用户态与内核态之间来回切换,代价很高,不过可以通过对锁优化进行改善)。 ReentrantLock与synchronized关键字一样,属于互斥锁,synchr
2018-01-31 18:20:14 220
原创 mysql中函数group_concat(多条数据的旧字段) as 新字段 ……GROUP BY
功能:查询出来的列可能是多条记录,这时候会报错[Err] 1242 - Subquery returns more than 1 row,所以需要把数据合并为一条记录,就用到该函数。 select m.*,(select p.res_name from sys_resource p where p.res_id = m.parent_id) as parentName, (sel
2018-01-29 16:35:22 671
原创 CyclicBarrier的使用
模拟十个运动员各自准备,等到所有人都准备好后,再一起跑 package com.my.maven; import java.util.Random; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; public class CyclicBarrierT
2018-01-26 14:07:55 110
原创 数据库分组查询
学生表student 字段id和name 课程表class 字段id和name 成绩表score 字段sid(学生id)、cid(课程id)、level成绩 查出所有满足有三科以上学科并且分数大于80分的学生名字集合 select s.sid,count(*) from score s where s.`level`>80 GROUP BY s.sid;
2018-01-15 18:33:08 293
原创 java实现斐波那契数列
public class FibonacciSequence { public static void main(String[] args) throws IOException { FibonacciSequence fibonacciSequence = new FibonacciSequence(); // int i = 8; // int
2018-01-06 22:00:38 641
转载 java中等待一些线程执行完之后,再去执行别的方法(后者需要使用前者返回的结果)
Java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户下单成功。 我们通过以下的几种方法来解决: 一、用sleep方法,让主线程睡眠一段时间,当然这个睡眠时间是主观的时间,是我们自己定的,这个方法不推荐,但是在这里还是写一下,毕竟是解决方法 ja
2018-01-06 21:13:55 9091 2
原创 java单链表的倒序实现
public class NodeTest { public static void main(String[] args) { class Node { String name; int index; Node next; public Node(String name,
2018-01-06 21:07:06 1594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人